如何解决如何交换两行Pandas DataFrame?
假设我有这个数据框:
0 1 2 3 4
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
4 20 21 22 23 24
我想交换第1行和第2行的位置。
是否有可以执行此操作的本地Pandas函数? 谢谢!
解决方法
将rename
与自定义字典和sort_index
一起使用
d = {1: 2,2: 1}
df_final = df.rename(d).sort_index()
Out[27]:
0 1 2 3 4
0 0 1 2 3 4
1 10 11 12 13 14
2 5 6 7 8 9
3 15 16 17 18 19
4 20 21 22 23 24
,
据我所知,尚无此功能。
但这是一个custum函数:
# Input
df = pd.DataFrame(np.arange(25).reshape(5,-1))
# Output
def swap_rows(df,i1,i2):
a,b = df.iloc[i1,:].copy(),df.iloc[i2,:].copy()
df.iloc[i1,:],:] = b,a
return df
print(swap_rows(df,1,2))
输出:
0 1 2 3 4
0 0 1 2 3 4
1 10 11 12 13 14
2 5 6 7 8 9
3 15 16 17 18 19
4 20 21 22 23 24
干杯!
,尝试numpy flip:
df.iloc[1:3] = np.flip(df.to_numpy()[1:3],axis=0)
df
0 1 2 3 4
0 0 1 2 3 4
1 10 11 12 13 14
2 5 6 7 8 9
3 15 16 17 18 19
4 20 21 22 23 24
,
df1=df.copy()
df1.iloc[1,df1.iloc[2,:]=df.iloc[2,df.iloc[1,:]
df1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。