Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从数据帧中的行中删除特定值?_Python_Pandas - Fatal编程技术网

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