gpt4 book ai didi

python - 根据原始数据框列数创建多个数据框

转载 作者:行者123 更新时间:2023-11-28 17:04:21 25 4
gpt4 key购买 nike

找了好久都没有找到类似的问题。如果有,请告诉我!

我目前正在尝试将一个数据帧分成 n 个数据帧,其中 n 等于原始数据帧的列数。所有新生成的数据框必须始终保留原始数据框的第一列。额外的是将所有内容收集在一个列表中,例如,以供进一步访问。

为了形象化我的意图,这里有一个简短的例子:

 >> original df

GeneID A B C D E
1 0.3 0.2 0.6 0.4 0.8
2 0.5 0.3 0.1 0.2 0.6
3 0.4 0.1 0.5 0.1 0.3
4 0.9 0.7 0.1 0.6 0.7
5 0.1 0.4 0.7 0.2 0.5

我想要的输出是这样的:

 >> df1

GeneID A
1 0.3
2 0.5
3 0.4
4 0.9
5 0.1

>> df2

GeneID B
1 0.2
2 0.3
3 0.1
4 0.7
5 0.4


....

依此类推,直到覆盖原始数据框中的所有列。什么是更好的解决方案?

最佳答案

您可以使用df.columns 获取所有列名,然后创建子数据框:

outdflist =[]
# for each column beyond first:
for col in oridf.columns[1:]:
# create a subdf with desired columns:
subdf = oridf[['GeneID',col]]
# append subdf to list of df:
outdflist.append(subdf)

# to view all dataframes created:
for df in outdflist:
print(df)

输出:

   GeneID    A
0 1 0.3
1 2 0.5
2 3 0.4
3 4 0.9
4 5 0.1
GeneID B
0 1 0.2
1 2 0.3
2 3 0.1
3 4 0.7
4 5 0.4
GeneID C
0 1 0.6
1 2 0.1
2 3 0.5
3 4 0.1
4 5 0.7
GeneID D
0 1 0.4
1 2 0.2
2 3 0.1
3 4 0.6
4 5 0.2
GeneID E
0 1 0.8
1 2 0.6
2 3 0.3
3 4 0.7
4 5 0.5

上面的 for 循环也可以更简单地写成列表推导式:

outdflist = [ oridf[['GeneID', col]] 
for col in oridf.columns[1:] ]

关于python - 根据原始数据框列数创建多个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52031829/

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