Python 如果为Nan,则将列值移动到同一列中的第一行
如何从这个Python 如果为Nan,则将列值移动到同一列中的第一行,python,pandas,Python,Pandas,如何从这个df c0 c1 c2 c3 0 5.99 NaN NaN NaN 1 NaN 12 NaN NaN 2 NaN NaN 44 NaN 3 NaN NaN NaN 49 c0 c1 c2 c3 0 5.99 12 44 49 对于此df c0 c1 c2 c3 0 5.99 NaN
df
c0 c1 c2 c3
0 5.99 NaN NaN NaN
1 NaN 12 NaN NaN
2 NaN NaN 44 NaN
3 NaN NaN NaN 49
c0 c1 c2 c3
0 5.99 12 44 49
对于此df
c0 c1 c2 c3
0 5.99 NaN NaN NaN
1 NaN 12 NaN NaN
2 NaN NaN 44 NaN
3 NaN NaN NaN 49
c0 c1 c2 c3
0 5.99 12 44 49
就是
- 将所有非NaN值移到第一行
- 将所有值保留在原始列中
轴=0
和downcast='infer'
+:
如果没有downcast='infer'
,您将获得所有浮点数据类型:
print(df.bfill(0).dropna())
c0 c1 c2 c3
0 5.99 12.0 44.0 49.0
not
NaN
值的数量是否保证在所有列中都相等?df.bfill(0).dropna()
?每列只有一个非NaN值。@Sandeep Kadapa:withbfill(0)
事实上,notbfill(1)
。谢谢bfill(axis=0,downcast='infer')
的附加值是多少?当bfill(0)
@luckspandowncat='infer'
将可能的整数值转换为int数据类型时,它似乎工作得很好,因为如果使用bfill(0)
则可以获得所有浮点数据类型,但使用此选项,某些列将更改为int数据类型。正在等待时间段过去:-)@luckspan没有问题。