2015-10-16 60 views
3

我有一個數據框,我試圖讀取它並操作它。有什麼區別[pandas.read_csv(文件名)]和[pandas.DataFrame.from_csv(文件名)]

但是我注意到前述的方法如下之間的一個區別:

myDF = pandas.read_csv(filename) 

會給我具有整數索引爲0到LEN數據幀(myDF上),而使用下述方法

A B C D 
0 rr gg hh kk 
1 rr gg hh kk 
2 rr gg hh kk 
3 rr gg hh kk 

myDF = pandas.DataFrame.from_csv(filename) 

將導致:

 B C D 
A 
rr gg hh kk 
rr gg hh kk 
rr gg hh kk 
rr gg hh kk 

所以很明顯,最後一種方法將第一列作爲索引。 但我的問題是爲什麼。
這兩種方法是不是應該是相同的?
我在這裏錯過什麼?

回答

3

的差額,the documentation for DataFrame.from_csv() -

讀取CSV文件給出(鼓勵把,請使用pandas.read_csv()代替)。

優選的是,使用最一般用途的更強大的pandas.read_csv(),但from_csv使一個往返容易向和從一個文件(to_csv的確切對應),特別是與時間序列數據的數據幀。

此方法僅在某些默認優選pandas.read_csv()不同:

  • index_col是0而不是None(採取第一列作爲默認索引)
  • parse_dates爲True而不是假(試默認情況下將索引解析爲日期時間)

(強調採礦)

正如你可以看到pandas.read_csv()的index_col默認爲None,所以你在pandas.DataFrame.from_csv()得到0len(DataFrame)爲指標,反之,index_col默認爲0,所以需要第一欄爲默認值。

正如文檔中所解釋的,我建議使用比pandas.DataFrame.from_csv()更強大的pandas.read_csv()

相關問題