首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择特定的CSV列(过滤)-Python/熊猫

选择特定的CSV列(过滤)-Python/熊猫
EN

Stack Overflow用户
提问于 2014-03-14 01:44:58
回答 3查看 53.3K关注 0票数 15

我有一个很大的CSV文件,有100列。为了说明我的问题,我将使用一个非常基本的例子。

假设我们有一个CSV文件。

值d f 975 f01 5 1 976 F 4 2 977 d4 1 3 978 B6 0 4 979 2C 0

我想选择一个特定的列。

代码语言:javascript
运行
复制
import pandas
data = pandas.read_csv("ThisFile.csv")

为了选择我使用的前2列

代码语言:javascript
运行
复制
data.ix[:,:2]

为了选择不同的列,如第二和第四列。我该怎么办?

还有一种方法可以通过重写CSV文件来解决这个问题.但这是一个很大的文件,所以我要避免这样做。

EN

回答 3

Stack Overflow用户

发布于 2014-03-14 01:50:25

这将选择第二列和第四列(因为Python使用基于0的索引):

代码语言:javascript
运行
复制
In [272]: df.iloc[:,(1,3)]
Out[272]: 
   value  f
0    975  5
1    976  4
2    977  1
3    978  0
4    979  0

[5 rows x 2 columns]

df.ix可以根据位置或标签进行选择。df.iloc总是按位置进行选择。当按位置索引时,使用df.iloc更明确地表示您的意图。因为Pandas不需要检查您的索引是否使用标签,所以它也更快一些。

另一种可能是使用usecols参数:

代码语言:javascript
运行
复制
data = pandas.read_csv("ThisFile.csv", usecols=[1,3])

这将只将第二列和第四列加载到data DataFrame中。

票数 20
EN

Stack Overflow用户

发布于 2014-03-14 02:48:06

如果您宁愿按名称选择列,则可以使用

代码语言:javascript
运行
复制
data[['value','f']]

   value  f
0    975  5
1    976  4
2    977  1
3    978  0
4    979  0
票数 9
EN

Stack Overflow用户

发布于 2019-06-15 16:38:07

正如韦业东所说,您可以在阅读时通过指定列的名称来筛选数据,例如:

代码语言:javascript
运行
复制
import pandas as pd
data = pd.read_csv("ThisFile.csv")[['value','d']]

这解决了我的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22394598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档