如何将 DataFrame 保存为列表而不是字符串 [重复]
Posted
技术标签:
【中文标题】如何将 DataFrame 保存为列表而不是字符串 [重复]【英文标题】:How can I save DataFrame as list and not as string [duplicate] 【发布时间】:2021-01-18 19:35:39 【问题描述】:我创建了这个pd.DataFrame()
。我想创建一个.csv
并保存为这个
0 1
0 [15921, 10, 82, 22, 202973, 368, 1055, 3135, 1... 0
1 [609, 226, 413, 363, 211, 241, 988, 80, 12, 19... 0
2 [22572, 3720, 233, 13, 827, 710, 512, 354, 1, ... 0
3 [345, 656, 25, 2589, 6, 866] 0
4 [29142, 8, 4141, 456, 24] 0
... ..
1599995 [256, 8, 80, 110, 25, 152] 4
1599996 [609039, 22, 129, 184, 163, 9419, 769, 358, 10... 4
1599997 [140, 5715, 6540, 294, 1552] 4
1599998 [59, 22771, 189, 387, 4483, 13, 10305, 112231,... 4
1599999 [59, 15833, 200370, 609041, 609042] 4
但是通过做
data.to_csv("foo.csv", index=True)
问题是每个list
现在都保存为str
。例如,第 3 行是
"[345, 656, 25, 2589, 6, 866]"
对于那些持怀疑态度的人,我试过type(row 3)
,它是str
。第 2 列运行良好。
如何将每一行保存为list
而不是str
?也就是说,如何将col 1
的所有行保存为DataFrame
而不是str
?
【问题讨论】:
这能回答你的问题吗? Pandas DataFrame stored list as string: How to convert back to list? @mikksu 对不起,它没有回答我的问题 【参考方案1】:试试这个:
import pandas as pd
df = pd.DataFrame('a': ["[1,2,3,4]", "[6,7,8,9]"])
df['b'] = df['a'].apply(eval)
print(df)
b 列中的数据现在是一个数组。
a b
0 [1,2,3,4] [1, 2, 3, 4]
1 [6,7,8,9] [6, 7, 8, 9]
【讨论】:
谢谢!它起作用了,但我改变了一件事:df['a'] = df['a'].apply(eval)
将 col a
更改为 list
和 df['b'] = df['b'].apply(eval)
对 col b
做同样的事情以上是关于如何将 DataFrame 保存为列表而不是字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 SharedPreferences 中的数据保存并显示为列表?