我正在处理一个DataFrame,我需要将元组保存为特定列中的值。
df['column'] = (423423,41231,5345)在将DataFrame保存到.csv之后,如果我想要返回值,我就不能再次使用元组,因为它已经被保存为字符串。
是否有任何方法将元组(或一般情况下的对象)保存为值?
在熊猫或其他库中是否有特定的功能,允许将以前的元组(保存为字符串)再次转换为元组?
发布于 2020-03-07 12:43:47
csv不能存储python对象,您应该使用泡菜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) zdf.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)这样的字符串。
https://stackoverflow.com/questions/60577572
复制相似问题