Pandas基于key格式化csv数据

2024-05-23 16:17:57 发布

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

我有一个大的csv文件(100多万行),数据沿着

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

我的最终结果是将数据格式化为json,如下所示

^{pr2}$

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

我最初是创建一个listdicts

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

然后根据这个列表创建一个新的数据帧,但是我遇到了相同的问题,即合并数据帧的行。在


Tags: and文件csv数据sampleidtypesite
1条回答
网友
1楼 · 发布于 2024-05-23 16:17:57

试试看数据帧.pivot(). 在

在成为新索引的“s”上透视和分组:

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

将索引添加为新列:

^{pr2}$

以“records”格式输出为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}]

相关问题 更多 >