CSV не может хранить python объектов, вы должны использовать вместо * pickle to_pickle
и read_pickle
.
Пример:
df = pd.DataFrame({'A':[(1,2,3),(4,5,6),(7,8,9)],'B':list('xyz')})
print(df)
A B
0 (1, 2, 3) x
1 (4, 5, 6) y
2 (7, 8, 9) z
df.to_pickle('test.pkl')
new_df = pd.read_pickle('test.pkl')
print(new_df)
A B
0 (1, 2, 3) x
1 (4, 5, 6) y
2 (7, 8, 9) z
type(new_df.loc[0,'A'])
#tuple
Для CSV, когда вы читаете CSV, значения возвращаются в виде строки, к которой вы можете применить ast.literal_eval
подобно df['Col_name'].apply(ast.literal_eval)
после импорта ast