【发布时间】:2019-08-31 20:58:13
【问题描述】:
我有一个数据框:
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不能用了,对吧? -
也许是最好的更改数据,不会让其他人感到困惑 :)
-
这确实令人困惑。他的输出看起来像 sort_values 和 na_position
标签: python python-3.x pandas numpy dataframe