如何用Pandas更改行或列顺序?如何交换奇偶行或列顺序?

所有需要数据可以从该网址下载:https://github.com/datawhalechina/joyful-pandas

列或行顺序修改

方法一、reindex法更改行或列(定义一个列表,直接对index排序实现行顺序更改,对column排序进行列更改)但这种方法,只适合较少行列顺序的改变,否则枚举起来太复杂。优点是,该方法不会直接操作原df。

df = pd.read_csv('data/table.csv',index_col='ID')
df.head()
# 行排序
dfNewRow = df.reindex(index=[1101,1203,1206,2402])
dfNewRow
dfNewCol = df.reindex(columns=['Height','Gender']).head()
dfNewCol 

行顺序更改

奇偶行列顺序修改

df = pd.read_csv('data/table.csv',index_col='ID')
df.head()
#df.loc[np.c_[df.index[1::2].tolist(),df.index[0::2].tolist()].reshape(-1)]  #奇偶行数相等
df.loc[np.c_[df.index[1::2].tolist(),df.index[0:-1:2].tolist()].reshape(-1)]  #奇偶行数不相等

该方法中,df.index[1::2].tolist()表示从索引1开始,每隔2行取出索引,即奇数行;再用np.c_将就是把两矩阵左右相加,要求行数相等。(关于np.c_,np.r_的用法可以参考:https://blog.csdn.net/weixin_41797117/article/details/80048688)
由此,可以实现df中奇数行互换。
在这里插入图片描述

dfOddEvenCha = df[np.r_[df.columns[1::2].tolist(),
             df.columns[0::2].tolist()].reshape(-1,)] #奇偶列数相等
#dfOddEvenCha = df[np.r_[df.columns[1::2].tolist(),
#             df.columns[0:-1:2].tolist()].reshape(-1,)] #奇偶列数不相等
dfOddEvenCha.head()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值