2024-05-15 15:50:33 发布
网友
我有一个数据框,其中包含一列,如下所示,包含4000行,我需要提取一个字符串,如:
动作冒险幻想科幻小说
摘自下文
'[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 878, "name": "Science Fiction"}]'
这是JSON,而不是数据帧。使用json模块:
json
import json s = '[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 878, "name": "Science Fiction"}]' '-'.join(d['name'] for d in json.loads(s)) #evaluates to 'Action-Adventure-Fantasy-Science Fiction'
根据您的问题,似乎您的数据帧中每行都有这个dict嵌入数据的字符串/列表
我编写了一个可能有帮助的示例:
import pandas as pd import json df = pd.DataFrame(['[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 878, "name": "Science Fiction"}]'], columns=['x'])
我制作了一个自定义函数来应用于每一行数据。它可能不是最优雅的,但希望它很容易理解
def collect_names(data_dict): name_list = [dic["name"] for dic in data_dict] return '-'.join(name_list)
最后
df["names"] = df['x'].apply(lambda row: collect_names(json.loads(row)))
返回…'数据框中每行的动作冒险幻想科幻小说
这是JSON,而不是数据帧。使用
json
模块:根据您的问题,似乎您的数据帧中每行都有这个dict嵌入数据的字符串/列表
我编写了一个可能有帮助的示例:
我制作了一个自定义函数来应用于每一行数据。它可能不是最优雅的,但希望它很容易理解
最后
返回…'数据框中每行的动作冒险幻想科幻小说
相关问题 更多 >
编程相关推荐