如何在 Python 中提取字符串中的列表?

2024-01-13

我使用 Pandas 导入了 CSV,并用字符串条目读入了一列。检查本系列(专栏)的条目,我发现它们实际上应该是列表。例如:

df['A'] = pd.Series(['["entry11"]', '["entry21","entry22"]', '["entry31","entry32"]'])

我想从字符串中提取列表元素。到目前为止,我已经尝试过以下链:

df['A'] = df['A'].replace("'",'',regex=True).
                  replace('\[','',regex=True).
                  replace('\]','',regex=True).
                  str.split(",")

(当然,全部都在一行上)。

这让我在一列中返回了我想要的列表元素。

  • ['“条目11”']
  • ['“条目21”,“条目22”']
  • ['“条目31”,“条目32”']

我的问题:有没有更有效的方法来做到这一点?对于一些本应更容易的事情来说,这似乎是很大的压力。


You can "apply" http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html the ast.literal_eval() https://docs.python.org/3/library/ast.html#ast.literal_eval到该系列:

In [8]: from ast import literal_eval

In [9]: df['A'] = df['A'].apply(literal_eval)

In [10]: df
Out[10]: 
                    A
0           [entry11]
1  [entry21, entry22]
2  [entry31, entry32]

还有map() and applymap()- 这是讨论差异的主题:

  • Pandas 中的 map、applymap 和 apply 方法之间的区别 https://stackoverflow.com/q/19798153/771848
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中提取字符串中的列表? 的相关文章