如何将字符串更改为 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'>
我有一个数据框,其中一列有这样的行:
'["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'>