标题中的概率。的exaple:
x=[('a','a','c') for i in range(5)]
df = DataFrame(x,columns=['col1','col2','col3'])
df.to_csv('test.csv')
df1 = read_csv('test.csv')
Unnamed: 0 col1 col2 col3
0 0 a a c
1 1 a a c
2 2 a a c
3 3 a a c
4 4 a a c
原因似乎是在保存数据帧时,也会写入索引列,标题中没有名称。然后当您再次加载csv时,它将索引列作为未命名列加载。这是一个错误吗?如何避免使用索引编写csv,或者在读取时删除未命名的列?
答案 0 :(得分:8)
您可以通过index
和index_label
parameters of to_csv删除行标签。
答案 1 :(得分:5)
这些不对称,因为定位会导致csv格式存在歧义。您需要在回读中指定index_col
In [1]: x=[('a','a','c') for i in range(5)]
In [2]: df = DataFrame(x,columns=['col1','col2','col3'])
In [3]: df.to_csv('test.csv')
In [4]: !cat test.csv
,col1,col2,col3
0,a,a,c
1,a,a,c
2,a,a,c
3,a,a,c
4,a,a,c
In [5]: pd.read_csv('test.csv',index_col=0)
Out[5]:
col1 col2 col3
0 a a c
1 a a c
2 a a c
3 a a c
4 a a c
这与上面的内容非常相似,'foo'是列还是索引?
In [6]: df.index.name = 'foo'
In [7]: df.to_csv('test.csv')
In [8]: !cat test.csv
foo,col1,col2,col3
0,a,a,c
1,a,a,c
2,a,a,c
3,a,a,c
4,a,a,c
答案 2 :(得分:0)
您可以使用cols参数明确指定要写入的列。
答案 3 :(得分:0)
那是如何使用索引的
df.to_csv('test.csv', index_label=False)
但是对我来说,当我尝试提交给Kaggle时,它会返回错误"错误:记录1有3列但预期为2"所以我用this code解决了它。