2024-04-26 04:51:22 发布
网友
我有一个熊猫数据框,看起来像这样:
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 . . .
运行:
df.apply(lambda col: col.dropna().reset_index(drop=True).astype(int))
只需对每列应用一个函数,该函数将在该列中删除NaN值。 由于存在NaN值,列通常为浮动类型, 但我试图将它们转换为int
还请注意,其他解决方案仅在每列包含 相等数量的非NaN值
要进行检查,请添加以下行:
6 NaN NaN 999
到初始的6行,这样现在列3包含3非Nan值, 而其他列-仅2
雅图yatu的解决方案会删除最后一行,而Quang的解决方案则会删除最后一行 导致ValueError:数组的长度必须相同
但我的解决方案在这种情况下也可以正常工作,留下拖尾NaN 在“太短”列中
我们可以在链接的帖子中使用^{}:
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
您只需dropna:
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
运行:
只需对每列应用一个函数,该函数将在该列中删除NaN值。 由于存在NaN值,列通常为浮动类型, 但我试图将它们转换为int
还请注意,其他解决方案仅在每列包含 相等数量的非NaN值
要进行检查,请添加以下行:
到初始的6行,这样现在列3包含3非Nan值, 而其他列-仅2
雅图yatu的解决方案会删除最后一行,而Quang的解决方案则会删除最后一行 导致ValueError:数组的长度必须相同
但我的解决方案在这种情况下也可以正常工作,留下拖尾NaN 在“太短”列中
我们可以在链接的帖子中使用^{} :
您只需
dropna
:输出:
相关问题 更多 >
编程相关推荐