废话不多说,直接上代码
file = 'RNAactDrug.csv'
df = pd.read_csv('RNAactDrug.csv',sep=',',header='infer',usecols=['Compound','RNA.molecule'])
cols = list(df)
cols.insert(0,cols.pop(cols.index('RNA.molecule'))) # cols.pop(cols.index('RNA.molecule')) 是要换的列,0是将指定的列放在第0列的位置,
df = df.loc[:,cols] # 开始按照两列互换
df.to_csv('RNAactDrugExchangeTwoCols.csv', index=False) #保存为csv文件
最主要的就是这两句:
cols.insert(0,cols.pop(cols.index('RNA.molecule'))) # cols.pop(cols.index('RNA.molecule')) 是要换的列,0是将指定的列放在第0列的位置,
df = df.loc[:,cols] # 开始按照两列互换
第一句 cols.insert(0,cols.pop(cols.index('RNA.molecule')))
实现了将 'RNA.molecule' 这一列移动到了第一列位置,这里用到了列表的 pop() 和 insert() 方法。具体来说:
cols.index('RNA.molecule')
用于获取 'RNA.molecule' 这一列在列表 cols 中的位置。cols.pop(cols.index('RNA.molecule'))
用于将 'RNA.molecule' 这一列从列表中删除,并返回该列对应的值。cols.insert(0,cols.pop(cols.index('RNA.molecule')))
用于将上一步得到的值插入到列表的第一个位置。
第二句代码 df = df.loc[:,cols]
则是根据新的列顺序重新选取数据框中的列。具体来说,:,:
表示选取所有行,cols
则表示选取指定的列。这里用到了 Pandas 中的 loc[] 方法。