我有一个数据帧:
df1 = pd.DataFrame({'a': [1, 2, 10, np.nan, 5, 6, np.nan, 8],
'b': list('abcdefgh')})
df1
a b
0 1.0 a
1 2.0 b
2 10.0 c
3 NaN d
4 5.0 e
5 6.0 f
6 NaN g
7 8.0 h
我想移动a所在的所有行np.nan公司到数据帧的底部
df2 = pd.DataFrame({'a': [1, 2, 10, 5, 6, 8, np.nan, np.nan],
'b': list('abcefhdg')})
df2
a b
0 1.0 a
1 2.0 b
2 10.0 c
3 5.0 e
4 6.0 f
5 8.0 h
6 NaN d
7 NaN g
我试过这个:
na = df1[df1.a.isnull()]
df1.dropna(subset = ['a'], inplace=True)
df1 = df1.append(na)
df1
有没有更干净的方法?或者有一个函数我可以用来做这个?你知道吗
编辑操作后的新答案
您很接近,但可以使用以下方法稍微清理代码:
旧答案
将
sort_values
与na_position=last
参数一起使用:在} 和^{} 表示位置,并按^{} 更改顺序:
pandas
中还不存在,使用^{或带有辅助列和^{} 的纯溶液:
相关问题 更多 >
编程相关推荐