gpt4 book ai didi

python - 如何按唯一组拆分数据框并保存到 csv

转载 作者:太空狗 更新时间:2023-10-29 19:37:29 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,我想对其进行迭代。我的数据框的一个简化示例:

chr    start    end    Gene    Value   MoreData
chr1 123 123 HAPPY 41.1 3.4
chr1 125 129 HAPPY 45.9 4.5
chr1 140 145 HAPPY 39.3 4.1
chr1 342 355 SAD 34.2 9.0
chr1 360 361 SAD 44.3 8.1
chr1 390 399 SAD 29.0 7.2
chr1 400 411 SAD 35.6 6.5
chr1 462 470 LEG 20.0 2.7

我想遍历每个独特的基因并创建一个名为:

for Gene in df: ## this is where I need the most help

OutFileName = Gene+".pdf"

对于上面的示例,我应该使用 3 个输出文件和 3 个数据帧进行 3 次迭代:

# HAPPY.pdf
chr1 123 123 HAPPY 41.1 3.4
chr1 125 129 HAPPY 45.9 4.5
chr1 140 145 HAPPY 39.3 4.1

# SAD.pdf
chr1 342 355 SAD 34.2 9.0
chr1 360 361 SAD 44.3 8.1
chr1 390 399 SAD 29.0 7.2
chr1 400 411 SAD 35.6 6.5

# Leg.pdf
chr1 462 470 LEG 20.0 2.7

按 block 分割的结果数据帧内容将被发送到另一个函数,该函数将执行分析并将要写入文件的内容返回。

最佳答案

您可以通过调用 unique 获取唯一值,对其进行迭代,构建文件名并将其写入 csv:

genes = df['Gene'].unique()
for gene in genes:
outfilename = gene + '.pdf'
print(outfilename)
df[df['Gene'] == gene].to_csv(outfilename)
HAPPY.pdf
SAD.pdf
LEG.pdf

一个更像 Pandas 的方法是对 'Gene' 进行分组,然后遍历这些组:

gp = df.groupby('Gene')
# groups() returns a dict with 'Gene':indices as k:v pair
for g in gp.groups.items():
print(df.loc[g[1]])

chr start end Gene Value MoreData
0 chr1 123 123 HAPPY 41.1 3.4
1 chr1 125 129 HAPPY 45.9 4.5
2 chr1 140 145 HAPPY 39.3 4.1
chr start end Gene Value MoreData
3 chr1 342 355 SAD 34.2 9.0
4 chr1 360 361 SAD 44.3 8.1
5 chr1 390 399 SAD 29.0 7.2
6 chr1 400 411 SAD 35.6 6.5
chr start end Gene Value MoreData
7 chr1 462 470 LEG 20 2.7

关于python - 如何按唯一组拆分数据框并保存到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26103676/

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