我已经将一个csv文件读入到一个panda Dataframe 中,并想对 Dataframe 做一些简单的操作。我不知道如何基于从原始 Dataframe 中选择的列创建一个新的 Dataframe 。我的尝试:
names = ['A','B','C','D']
dataset = pandas.read_csv('file.csv', names=names)
new_dataset = dataset['A','D']
我想创建一个新的 Dataframe ,其中包含原始 Dataframe 中的A列和D列。
2条答案
按热度按时间l7wslrjt1#
它被称为
subset
-[]
中传递的列列表:与以下内容相同:
如果只需要滤波输出,则将参数
usecols
添加到read_csv
:编辑:
如果仅使用:
使用一些数据操作,显然可以得到:
试图在DataFrame的切片副本上设置值。
请尝试改用. loc [行索引器,列索引器]=值
如果以后修改
new_dataset
中的值,您会发现修改不会传播回原始数据(dataset
),并且Pandas会发出警告。按照EdChum的指示,添加
copy
以删除警告:yr9zkbsy2#
必须传递列名列表以选择列。否则,它将被解释为MultiIndex;如果
df.columns
是多索引,则df['A','D']
将工作。最明显的方法是
df.loc[:, ['A', 'B']]
,但还有其他方法(注意它们都是如何处理列表的):注意:
items
是第一个位置参数,因此df.filter(['A', 'D'])
也有效。注意,
filter()
和reindex()
也返回一个副本,因此您不必担心以后会得到SettingWithCopyWarning
。