使用列中的特定模式提取字符串

2024-06-16 09:03:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据框中有一列包含以下格式的数据:

id, value
10001, "[{'self': 'https://www.weburl.com', 'value': 'Value 1', 'id': '101'}, 
   {'self': 'https://www.weburl.com', 'value': 'Value 2', 'id': '102'}]"
10002, "[{'self': 'https://www.weburl.com', 'value': 'Value 1', 'id': '101'}, 
   {'self': 'https://www.weburl.com', 'value': 'Value 2', 'id': '102'}, 
   {'self': 'https://www.weburl.com', 'value': 'Value 4', 'id': '104'}]"

我试图提取数据,以便将以下输出(提取与值字段对应的所有值)作为一个新列:

id, new_value
10001, Value 1, Value 2
10002, Value 1, Value 2, Value 4

Tags: 数据httpsselfcomidnewvaluewww
1条回答
网友
1楼 · 发布于 2024-06-16 09:03:55

如果您的值有效json,则可以使用ast.literal_eval进行列表理解:

df["value"] = df["value"].apply(literal_eval)
df["value"] = [", ".join(k["value"] for k in i) for i in df["value"]]

print (df)

      id                      value
0  10001           Value 1, Value 2
1  10002  Value 1, Value 2, Value 4

相关问题 更多 >