Pandas сохранить кортеж как значение в столбце - PullRequest
1 голос
/ 07 марта 2020

Я работаю над DataFrame, и мне нужно сохранить кортеж как значение в указанном столбце c.

df['column'] = (423423,41231,5345)

После сохранения DataFrame в .csv, если я хочу вернуть значение Я не могу снова использовать кортеж, потому что он был сохранен как строка.

Есть ли способ сохранить кортеж (или объект вообще) в качестве значения?

Это есть какая-либо специфицированная c функция в pandas или другой библиотеке, которая позволяет снова преобразовать предыдущий кортеж (сохраненный как строку) в кортеж?

1 Ответ

3 голосов
/ 07 марта 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...