Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从文件读取数据帧时出错_Python_Pandas - Fatal编程技术网

Python 从文件读取数据帧时出错

Python 从文件读取数据帧时出错,python,pandas,Python,Pandas,我正在尝试使用python中的DataFrame.from_csv()读取一个文件。该文件包含此值 TICKER,date,ASKHI,PRC,BIDLO,PortfolioDate,PortfolioName MSFT,2012-06-29 00:00:00,NA,NA,NA,2010-12-31 00:00:00,SAP500 MSFT,2012-07-31 00:00:00,NA,NA,NA,2010-12-31 00:00:00,SAP500 MSFT,2012-08-31 00:00:

我正在尝试使用python中的DataFrame.from_csv()读取一个文件。该文件包含此值

TICKER,date,ASKHI,PRC,BIDLO,PortfolioDate,PortfolioName
MSFT,2012-06-29 00:00:00,NA,NA,NA,2010-12-31 00:00:00,SAP500
MSFT,2012-07-31 00:00:00,NA,NA,NA,2010-12-31 00:00:00,SAP500
MSFT,2012-08-31 00:00:00,NA,NA,NA,2010-12-31 00:00:00,SAP500
MSFT,2012-09-28 00:00:00,NA,NA,NA,2010-12-31 00:00:00,SAP500
MSFT,2012-10-31 00:00:00,28.88,28.54,28.5,2010-12-31 00:00:00,SAP500
但是,当我访问时,我从dataframe读取它,该帧生成如下

     date  ASKHI    PRC  BIDLO        PortfolioDate  \
TICKER                                                                  
MSFT    2012-06-29 00:00:00    NaN    NaN    NaN  2010-12-31 00:00:00   
MSFT    2012-07-31 00:00:00    NaN    NaN    NaN  2010-12-31 00:00:00   
MSFT    2012-08-31 00:00:00    NaN    NaN    NaN  2010-12-31 00:00:00   
MSFT    2012-09-28 00:00:00    NaN    NaN    NaN  2010-12-31 00:00:00   
MSFT    2012-10-31 00:00:00  28.88  28.54   28.5  2010-12-31 00:00:00   

       PortfolioName  
TICKER                
MSFT          SAP500  
MSFT          SAP500  
MSFT          SAP500  
MSFT          SAP500  
MSFT          SAP500  
当我使用frame['date']选择列'date'时,结果是:

TICKER
MSFT      2012-06-29 00:00:00
MSFT      2012-07-31 00:00:00
MSFT      2012-08-31 00:00:00
MSFT      2012-09-28 00:00:00
MSFT      2012-10-31 00:00:00
我的代码是:

frame = DataFrame.from_csv('/home/raghu/log.txt',sep=',');
我是新来的。我有什么遗漏吗?为什么第一栏是这样的

编辑:Pandas版本:“0.14.1”

不要使用它不再维护,而是使用:

第一列之所以奇怪,是因为它在使用时将第一列作为索引(默认值为
index\u col
0
),而实际情况并非如此(默认值为
index\u col
None

编辑

要在不升级的情况下修复错误,只需将参数中的
index\u col=None
设置为
from\u csv

In [115]:

df = pd.DataFrame.from_csv(io.StringIO(temp), index_col=None)
df['date']
Out[115]:
0    2012-06-29 00:00:00
1    2012-07-31 00:00:00
2    2012-08-31 00:00:00
3    2012-09-28 00:00:00
4    2012-10-31 00:00:00
Name: date, dtype: object

不要使用
pandas.DataFrame.from_csv
它已经过时了,请使用
pandas.read_csv
。另外请注意,如果您不喜欢这种行为,并且由于某种原因无法避免,您可以随时重置索引:
df=df.reset_index()
pandas.read_csv无法删除默认索引。无论如何,我使用dataframe.to_csv(index=False)来重新生成csv,效果很好。我试过了。但是,有一个错误“AttributeError:type对象“DataFrame”没有属性“read_csv”。我用的是蟒蛇,我觉得他们的包装已经过时了。无论如何,谢谢。@RaghuVenmarathoor是的,你应该更新,你能用你正在使用的pandas版本更新你的帖子吗,因为这对其他用户会有帮助,如果这回答了你的问题,你也可以接受。有趣的是,frame=pandas.DataFrame.read_csv('testFile.csv',sep=',index_col False)显示了预期的结果。但是,我不希望索引显示在dataframeNo中,它应该是
None
而不是
False
我希望这是anaconda中熊猫的问题。我尝试了没有,但它仍然显示索引!!
In [115]:

df = pd.DataFrame.from_csv(io.StringIO(temp), index_col=None)
df['date']
Out[115]:
0    2012-06-29 00:00:00
1    2012-07-31 00:00:00
2    2012-08-31 00:00:00
3    2012-09-28 00:00:00
4    2012-10-31 00:00:00
Name: date, dtype: object