python - 在 pandas/python 中,读取存储为字符串的数组

标签 python arrays csv pandas dataframe

我有一个 Pandas 数据框,其中一列的每个元素都有字符串数组。

所以像这样的事情。

  col1 col2
0 120  ['abc', 'def']
1 130  ['ghi', 'klm']

现在,当我使用 to_csv 将它存储到 csv 时,它看起来很好。
当我使用 from_csv 读回它时,我似乎读回了。
但是当我分析每个单元格中的值时,数组是

'[' ''' 'a' 'b' 'c' 等等。
所以本质上它不是将其作为数组读取,而是将其读取为一组字符串。有人可以建议我如何将此字符串转换为数组吗?

我的意思是说数组已像字符串一样存储
'[\'abc\',\'def\']'

最佳答案

如其他问题所述,您应该使用 literal_eval这里:

from ast import literal_eval
df['col2'] = df['col2'].apply(literal_eval)

在行动:
In [11]: df = pd.DataFrame([[120, '[\'abc\',\'def\']'], [130, '[\'ghi\',\'klm\']']], columns=['A', 'B'])

In [12]: df
Out[12]:
     A              B
0  120  ['abc','def']
1  130  ['ghi','klm']

In [13]: df.loc[0, 'B']  # a string
Out[13]: "['abc','def']"

In [14]: df.B = df.B.apply(literal_eval)

In [15]: df.loc[0, 'B']  # now it's a list
Out[15]: ['abc', 'def']

关于python - 在 pandas/python 中,读取存储为字符串的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48109936/

相关文章:

python - Tensorflow conv3d_transpose *** 'python' : free(): invalid pointer 中的错误

arrays - 处理 Express 表单中的输入数组?

C++:在数组中寻找最大值的问题

c# - 指向数组元素

php 内爆(101)带引号

ruby-on-rails - 从 Google Analytics 导出数据

python - 如何摆脱 GPT-2 警告消息?

python - 将 Series 中的每个元素映射到 Series 并将结果组合到 DataFrame 中

python - 如何在Python中重构四个缩进级别?

mysql - 如何每隔[时间间隔]从 CSV 文件更新 MySQL 表?