Pandas中DataFrame交换列顺序的方法实现

时间:2021-05-22

一、获取DataFrame列标签

import pandas as pd file_path = '/Users/Arithmetic/da-rnn-master/data/collectd67_power_after_test_smooth.csv' dataset = pd.read_csv(file_path)cols = list(dataset)

['ps_state-stopped', 'ps_state-running', 'ps_state-blocked', 'ps_state-paging', 'ps_state-sleeping', 'ps_state-zombies', 'fork_rate', 'cpu-2-system', 'cpu-2-nice', 'cpu-2-steal',...]

二、改变列标签为指定顺序

import pandas as pdfile_path = '/Users/Arithmetic/da-rnn-master/data/collectd67_power_after_test_smooth.csv' dataset = pd.read_csv(file_path)cols = list(dataset)print(cols)cols.insert(0, cols.pop(cols.index('ps_state-running')))print(cols)

这里改变第一列和第二列的位置顺序,用到了python list中的两个方法

insert方法:
1.功能
insert()函数用于将指定对象插入列表的指定位置。
2.语法
list.insert(index, obj)
3.参数
index: 对象obj需要插入的索引位置。
obj: 插入列表中的对象。
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

三、利用loc获取新的DataFrame,拷贝交换顺序后的DataFrame

import pandas as pdfile_path = '/Users/Arithmetic/da-rnn-master/data/collectd67_power_after_test_smooth.csv' dataset = pd.read_csv(file_path)cols = list(dataset)print(cols)cols.insert(0, cols.pop(cols.index('ps_state-running')))print(cols)data = dataset.loc[:, cols]

四、保存csv覆盖原来的csv

import pandas as pd file_path = '/Users/Arithmetic/da-rnn-master/data/collectd67_power_after_test_smooth.csv'dataset = pd.read_csv(file_path)cols = list(dataset)print(cols)cols.insert(0, cols.pop(cols.index('ps_state-running')))print(cols)data = dataset.loc[:, cols]data.to_csv(file_path, index=False)

五、也可以这样

import pandas as pd file_path = '/Users/Arithmetic/da-rnn-master/data/collectd67_power_after_test_smooth.csv' dataset = pd.read_csv(file_path)cols = list(dataset)print(cols)cols.insert(0, cols.pop(cols.index('ps_state-running')))print(cols)dataset.loc[:, ['ps_state-running', 'ps_state-stopped']] = dataset[['ps_state-stopped', 'ps_state-running']].valuesdataset.columns = colsdataset.to_csv(file_path, index=False)

到此这篇关于Pandas中DataFrame交换列顺序的方法实现的文章就介绍到这了,更多相关Pandas DataFrame交换列顺序内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章