7

タイトルに問題があります。例:

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 を作成したり、読み取り中に名前のない列を削除したりしないようにするにはどうすればよいですか?

4

4 に答える 4

5

csv 形式には位置付けのためにあいまいさがあるため、これらは対称的ではありません。index_colon read-backを指定する必要があります

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
于 2013-10-17T14:10:23.757 に答える