【发布时间】:2021-02-07 12:31:07
【问题描述】:
我有一个包含 9 列(长而神秘的列名)和约 1000 行的数据框。我只想删除/删除第 2 列和第 3 列中的值为 NaN 的行。
我知道有DataFrame.dropna(subset=[]),但我不想按标签而是按位置选择列。
有办法吗?重命名列是没有选择的。
我的解决方案:
df.dropna(subset=df.columns[[2,3]], how='all')
编辑: 这是我的数据框的一些行:(重要的列是 Temp. 和 Event)
Datum Zeit Zeitzone \
Anz.
926 2019-09-17 09:00:00 GMT+02:00
927 2019-09-17 10:00:00 GMT+02:00
928 2019-09-17 11:00:00 GMT+02:00
929 2019-09-17 12:00:00 GMT+02:00
930 2019-09-17 13:00:00 GMT+02:00
931 2019-09-17 13:10:32 GMT+02:00
932 2019-09-17 13:11:21 GMT+02:00
933 2019-09-17 13:11:41 GMT+02:00
934 2019-09-17 13:11:42 GMT+02:00
935 2019-09-17 13:11:53 GMT+02:00
Temp., °C (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 1m) \
Anz.
926 12.401
927 13.942
928 15.760
929 15.569
930 15.187
931 NaN
932 NaN
933 NaN
934 NaN
935 NaN
Event, units (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 0,2 mm Niederschlag) \
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 163.0
932 NaN
933 NaN
934 NaN
935 163.0
Notiz Koppler verbunden (LGR S/N: 20009596) \
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 NaN
932 Protokolliert
933 NaN
934 Protokolliert
935 NaN
Koppler abgetrennt (LGR S/N: 20009596) \
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 NaN
932 NaN
933 Protokolliert
934 NaN
935 NaN
Host verbunden (LGR S/N: 20009596) Angehalten (LGR S/N: 20009596) \
Anz.
926 NaN NaN
927 NaN NaN
928 NaN NaN
929 NaN NaN
930 NaN NaN
931 NaN NaN
932 NaN NaN
933 NaN NaN
934 Protokolliert NaN
935 NaN Protokolliert
Dateiende (LGR S/N: 20009596)
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 NaN
932 NaN
933 NaN
934 NaN
935 Protokolliert
这就是我想要的样子(我留下了索引让它更明显):
Datum Zeit Zeitzone \
Anz.
926 2019-09-17 09:00:00 GMT+02:00
927 2019-09-17 10:00:00 GMT+02:00
928 2019-09-17 11:00:00 GMT+02:00
929 2019-09-17 12:00:00 GMT+02:00
930 2019-09-17 13:00:00 GMT+02:00
931 2019-09-17 13:10:32 GMT+02:00
935 2019-09-17 13:11:53 GMT+02:00
Temp., °C (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 1m) \
Anz.
926 12.401
927 13.942
928 15.760
929 15.569
930 15.187
931 NaN
935 NaN
Event, units (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 0,2 mm Niederschlag) \
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 163.0
935 163.0
Notiz Koppler verbunden (LGR S/N: 20009596) \
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 NaN
935 NaN
Koppler abgetrennt (LGR S/N: 20009596) \
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 NaN
935 NaN
Host verbunden (LGR S/N: 20009596) Angehalten (LGR S/N: 20009596) \
Anz.
926 NaN NaN
927 NaN NaN
928 NaN NaN
929 NaN NaN
930 NaN NaN
931 NaN NaN
935 NaN Protokolliert
Dateiende (LGR S/N: 20009596)
Anz.
926 NaN
927 NaN
928 NaN
929 NaN
930 NaN
931 NaN
935 Protokolliert
【问题讨论】:
-
请始终在您的问题中包含示例 DataFrame 以及所需结果的示例。您应该能够使用 df.iloc[:, [0,1]] 选择列
-
@B.Bogart 我包含了数据框。我知道如何使用 iloc 选择列,我只是不知道如何删除仅基于这些列的行。请阅读我的问题。
标签: python-3.x pandas position nan drop