【问题标题】:How can I save DataFrame as list and not as string [duplicate]如何将 DataFrame 保存为列表而不是字符串 [重复]
【发布时间】: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

【问题讨论】:

标签: python pandas dataframe


【解决方案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 更改为 listdf['b'] = df['b'].apply(eval)col b 做同样的事情
猜你喜欢
  • 2019-07-12
  • 2023-03-19
  • 2016-07-10
  • 2018-06-22
  • 1970-01-01
  • 2015-12-13
  • 2014-05-31
  • 2019-07-08
  • 2020-01-18
相关资源
最近更新 更多