Mam listę:

my_list = ['a', 'b']

I ramka danych pandy:

d = {'a': [1, 2], 'b': [3, 4], 'c': [1, 2], 'd': [3, 4]}
df = pd.DataFrame(data=d)

Co mogę zrobić, aby usunąć kolumny w df na podstawie listy my_list, w tym przypadku usuń kolumny a i b

3
Miguel Santos 25 marzec 2020, 18:17

2 odpowiedzi

Najlepsza odpowiedź

To jest bardzo proste:

df = df.drop(columns=my_list)

drop usuwa kolumny, określając listę nazw kolumn

2
Riccardo Bucco 25 marzec 2020, 15:19

To jest zwięzły skrypt używający funkcji rozumienia list: [df.pop (x) for x in my_list]

my_list = ['a', 'b']
d = {'a': [1, 2], 'b': [3, 4], 'c': [1, 2], 'd': [3, 4]}
df = pd.DataFrame(data=d)
print(df.to_markdown())
|    |   a |   b |   c |   d |
|---:|----:|----:|----:|----:|
|  0 |   1 |   3 |   1 |   3 |
|  1 |   2 |   4 |   2 |   4 |

[df.pop(x) for x in my_list]
print(df.to_markdown())
|    |   c |   d |
|---:|----:|----:|
|  0 |   1 |   3 |
|  1 |   2 |   4 |
0
Kuffner 26 marzec 2020, 08:40