They are not symmetrical, because in the csv format there are ambiguities due to positioning. You need to specify index_col when reading
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 aac 1 aac 2 aac 3 aac 4 aac
This looks very similar to the above, since the "foo" column or index?
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