从现有数据帧的某些列创建新的pandas数据帧

时间:2017-07-11 13:27:11

标签: python pandas dataframe

我已经读过将csv文件加载到pandas数据帧中,并希望对数据帧进行一些简单的操作。我无法弄清楚如何根据原始数据框中的选定列创建新数据框。我的尝试:

names = ['A','B','C','D']
dataset = pandas.read_csv('file.csv', names=names)
new_dataset = dataset['A','D']

我想创建一个包含原始数据框中A列和D列的新数据框。

1 个答案:

答案 0 :(得分:6)

它被称为subset - 传递了[]中的列列表:

dataset = pandas.read_csv('file.csv', names=names)

new_dataset = dataset[['A','D']]

与...相同:

new_dataset = dataset.loc[:, ['A','D']]

如果只需要过滤输出,请将参数usecols添加到read_csv

new_dataset = pandas.read_csv('file.csv', names=names, usecols=['A','D'])

编辑:

如果仅使用:

new_dataset = dataset[['A','D']]

并使用一些数据操作,显然得到:

  

正在尝试在DataFrame的切片副本上设置值   尝试使用.loc [row_indexer,col_indexer] = value而不是

如果稍后修改new_dataset中的值,您会发现修改不会传播回原始数据(dataset),并且Pandas会发出警告。

根据指示EdChum添加copy以删除警告:

new_dataset = dataset[['A','D']].copy()