Python 如何从数据帧中的行中删除特定值?
我有一个熊猫数据框,看起来像这样:Python 如何从数据帧中的行中删除特定值?,python,pandas,Python,Pandas,我有一个熊猫数据框,看起来像这样: Column1 Column2 Column3 0 1 NaN NaN 1 4 NaN NaN 2 NaN 3 NaN 3 NaN 98 NaN 4 NaN NaN 562 5 NaN NaN 742 . . . 我该如何移除所有不必要的NAN并使其看起来像这样 Column1 Column2 Column3 0 1 3 562 1 4 98 742 . . .
Column1 Column2 Column3
0 1 NaN NaN
1 4 NaN NaN
2 NaN 3 NaN
3 NaN 98 NaN
4 NaN NaN 562
5 NaN NaN 742
.
.
.
我该如何移除所有不必要的NAN并使其看起来像这样
Column1 Column2 Column3
0 1 3 562
1 4 98 742
.
.
.
运行:
只需对每列应用一个函数,该函数将在该列中删除NaN值。
由于存在NaN值,列通常为浮点型,
但我试图将它们转换为int
还请注意,其他解决方案仅在每列包含
相等数量的非NaN值
要进行检查,请添加以下行:
6 NaN NaN 999
对于初始的6行,现在第3列包含3非Nan值,
而其他列-仅2
yatu的解决方案删除最后一行,而Quang的解决方案
导致ValueError:数组的长度必须相同
但在这种情况下,我的解决方案也很有效,留下了一个拖尾
在“太短”列中。您可以只
dropna
:
df.apply(lambda x: x.dropna().values)
输出:
Column1 Column2 Column3
0 1.0 3.0 562.0
1 4.0 98.0 742.0
我们可以在这里使用链接帖子:
pd.DataFrame(justify(df.values, invalid_val=np.nan, side='up', axis=0),
columns=df.columns).dropna()
Row1 Row2 Row3
0 1.0 3.0 562.0
1 4.0 98.0 742.0
到底是什么问题?你试过什么,做过什么研究吗?这些数据从何而来,难道没有办法事先修正吗?
pd.DataFrame(justify(df.values, invalid_val=np.nan, side='up', axis=0),
columns=df.columns).dropna()
Row1 Row2 Row3
0 1.0 3.0 562.0
1 4.0 98.0 742.0