如何将字符串更改为 pandas 数据框中的列表?

How to change string to list in pandas data frame?

我有一个数据框,其中一列有这样的行:

'["user1", "user2" ... ]'

我希望它看起来像这样:

["user1", "user2" ... ]

我想这样做,使用 strip(),但我不知道如何在 brancets 中写“'”。

df.col =  df.col.str.strip("")

请帮忙。

您可以使用eval函数来实现。给定一个字符串,eval 将其解析为 python 表达式。

示例:

>>> str_items = '["user1", "user2"]'
>>> items = eval(str_items)
>>> type(items)
<class 'list'>

从例子中我们可以看出字符串表达式被转换为python列表。

要将 eval 应用于数据框列中的所有项目,我们可以使用 apply 函数。

>>> import pandas as pd
>>> frame = pd.DataFrame()
>>> frame["items"] = [ '["user1", "user2"]', '["user1", "user2"]']

现在我已经构建了一个类似于你的数据框。唯一剩下的就是我们需要将框架列中的所有项目转换为列表。

>>> frame["items"] = frame["items"].apply(eval)
>>> type(frame['items'][0])
<class 'list'>