假设我有以下情况DataFrame
:
import pandas as pd
import numpy as np
df = pd.DataFrame({"A":[11,21,31], "B":[12,22,32], "C":[np.nan,23,33], "D":[np.nan,24,34], "E":[15,25,35]})
哪个会返回:
>>> df
A B C D E
0 11 12 NaN NaN 15
1 21 22 23.0 24.0 25
2 31 32 33.0 34.0 35
nan
值的列我知道如何删除具有这样的nan
值的任何行的所有列:
out1 = df.dropna(axis=1, how="any")
哪个返回:
>>> out1
A B E
0 11 12 15
1 21 22 25
2 31 32 35
但是我期望的nan
是找到一个值后删除所有列。在玩具示例代码中,预期输出为:
A B
0 11 12
1 21 22
2 31 32
在a的nan
任何行中找到a后,如何删除所有列pandas
DataFrame
?
我会做什么:
any
行中的每一列df.loc[:, ~df.isna().cumsum(axis=1).any(axis=0)]
给我吗:
A B
0 11 12
1 21 22
2 31 32
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句