我有一个CSV文件,格式如下:
somefeature,anotherfeature,f3,f4,f5,f6,f7,lastfeature
0,0,0,1,1,2,4,5
我试着把它当作一个Pandas系列来阅读(使用Python 2.7的Pandas每日快照)。
import pandas as pd
types = pd.Series.from_csv('csvfile.txt', index_col=False, header=0)
以及:
types = pd.read_csv('csvfile.txt', index_col=False, header=0, squeeze=True)
但这两种方法都行不通:第一个函数给出随机结果,第二个函数只是导入一个DataFrame而不进行压缩。
看起来Pandas只能识别为一系列CSV格式如下:
f1, value
f2, value2
f3, value3
但是当特征键在第一行而不是第一列时,Pandas不想挤压它。
我还能试试别的吗?这是故意的吗?
7条答案
按热度按时间o7jaxewo1#
以下是我找到的方法:
对我来说似乎有点愚蠢,因为Squeeze应该已经这样做了。这是一个bug还是我错过了什么?
/EDIT:执行此操作的最佳方法:
这是将面向行的CSV行放入panda Series的最稳定的方法。
顺便说一句,squeeze=True参数现在是无用的,因为截至今天(2013年4月),它只适用于面向行的CSV文件,请参阅官方文档:
http://pandas.pydata.org/pandas-docs/dev/io.html#returning-series
b5lpy0ml2#
这样就可以了。挤压仍然可以,但它不能单独工作。
index_col
需要设置为0,如下所示1tuwyuhd3#
fd3cxomn4#
gt0wga4j5#
Pandas取值逻辑为:
所以我建议:
tyg4sfes6#
i2byvkas7#
由于上面的答案对我都不起作用,下面是另一个答案,从DataFrame手动重新创建Series。
输出: