gpt4 book ai didi

python - Pandas 基于 key 格式化 csv 数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:19 26 4
gpt4 key购买 nike

我有一个很大的 csv 文件(超过 100 万行),其中的数据类似于

s, p, o
4931958, type, CNV
4931958, sample_id, 683665
4931958, primary_Site, haematopoietic_and_lymphoid_tissue
4931958, site_subtype, NS

我的最终结果是将数据格式化为json,类似于

{
"name": 4931958,
"type": "CNV",
"sample_id": "683665",
"site_subtype": "NS"
}

我使用常规 python 循环完成此操作,运行了 4 个小时。我正在研究 python pandas 来帮助解决这个问题。我的问题是 pandas 文档似乎完全基于数学方程。我目前正在阅读 csv 并使用 groupby 按上面的 s 组织我的数据,但是如何将剩余的列合并为我想要的格式。

我最初是创建一个 dictslist

lst = []
for row in df.itertuples():
lst.append({"name": row[1], row[2]: row[3]})

然后根据此列表创建一个新的数据框,但我遇到了合并数据框的行的相同问题。

最佳答案

尝试 DataFrame.pivot()。

对成为新索引的“s”进行透视和分组:

 df_pivoted = df.pivot(index='s',columns='p', values='o')

将索引添加为新列:

 df_pivoted['name'] = df_pivoted.index

以“记录”格式输出 JSON:

 df_pivoted.to_json('output.json',orient='records')

JSON 文件应如下所示:

[{"primary_Site":"haematopoietic_and_lymphoid_tissue","sample_id":"683665","site_subtype":"NS","type":"CNV","name":4931958}]

关于python - Pandas 基于 key 格式化 csv 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40871679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com