我有一个数据框,我正在尝试阅读并操纵它。
但是我注意到上述方法之间的区别如下:
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
很明显,最后一个方法将第一列作为索引。 但我的问题是为什么 这两种方法不应该是一样的吗? 我在这里想念什么?
答案 0 :(得分:3)
差异在the documentation for DataFrame.from_csv()
-
阅读CSV文件( DISCOURAGED ,请改为使用
pandas.read_csv()
)。最好使用功能更强大的
pandas.read_csv()
用于大多数目的,但是from_csv
可以轻松地往返文件(与to_csv完全对应),特别是对于DataFrame时间序列数据。此方法与某些默认值中的首选
pandas.read_csv()
不同:
index_col
为0而不是None
(默认情况下将第一列作为索引)- parse_dates为True而不是False(默认情况下尝试将索引解析为datetime)
(强调我的)
正如您在pandas.read_csv()
中看到的那样,index_col默认为None
,因此您将0
作为索引获得len(DataFrame)
,而在pandas.DataFrame.from_csv()
中index_col
默认为0
,因此默认为第一列。
正如文档中所述,我建议使用功能更强大的pandas.read_csv()
而不是pandas.DataFrame.from_csv()
。