Почему `pandas.read_csv` не является обратным` pandas.DataFrame.to_csv`?

Мне кажется странным, что pandas.read_csv не является прямой обратной функцией df.to_csv. На этой иллюстрации обратите внимание, что при использовании всех настроек по умолчанию исходный и последний DataFrames отличаются столбцом "Без имени".

In [1]: import pandas as pd

In [2]: orig_df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]}); orig_df
Out[2]: 
   AAA  BBB  CCC
0    4   10  100
1    5   20   50
2    6   30  -30
3    7   40  -50

[4 rows x 3 columns]

In [3]: orig_df.to_csv('test.csv')

In [4]: final_df = pd.read_csv('test.csv'); final_df
Out[4]: 
   Unnamed: 0  AAA  BBB  CCC
0           0    4   10  100
1           1    5   20   50
2           2    6   30  -30
3           3    7   40  -50

[4 rows x 4 columns]

Кажется, что по умолчанию read_csv должен быть

In [6]: final2_df = pd.read_csv('test.csv', index_col=0); final2_df
Out[7]: 
   AAA  BBB  CCC
0    4   10  100
1    5   20   50
2    6   30  -30
3    7   40  -50

[4 rows x 3 columns]

или значение по умолчанию to_csv должно быть

In [8]: df.to_csv('test2.csv', index=False)

который при чтении дает

In [9]: pd.read_csv('test2.csv')
Out[9]: 
   AAA  BBB  CCC
0    4   10  100
1    5   20   50
2    6   30  -30
3    7   40  -50

[4 строки x 3 столбца]

(Возможно, это должно быть отправлено разработчику, но я искренне интересуюсь, почему это поведение по умолчанию. Надеюсь, это также поможет кому-то избежать недоразумений, которые у меня были).

Ответ 1

Спасибо за отзыв, чтобы опубликовать github страницу @EdChum. Это привело меня к функции pandas.DataFrame.from_csv, которая действительно является обратной pandas.DataFrame.to_csv.

In [6]: final_df = pd.DataFrame.from_csv('test.csv')

In [7]: final_df
Out[7]: 
   AAA  BBB  CCC
0    4   10  100
1    5   20   50
2    6   30  -30
3    7   40  -50

[4 rows x 3 columns]