早上好
基本上我有2个来自CSV的熊猫数据框:
数据框1 :每行是一个组,其中行索引是地理区域代码,列是前5个最相似的区域。例如:
0 1 2 3 4 5
Rank
00C 00C 03H 02D 05H 02E 04E
00D 00D 02P 02X 01X 03R 06M
数据框2 :这是一个较大的数据框,其中按年龄组,性别和地理区域细分了医院活动数量。例如:
MALE_0-4 MALE_5-9 FEMALE_80-84 FEMALE_85+
06M 75 59 43 48
00C 132 121 173 204
01X 84 63 124 102
03H 127 131 130 83
02P 93 89 208 151
02D 70 62 92 81
05H 96 76 52 32
00C 106 62 123 106
03R 75 59 43 48
02P 10 121 173 204
03R 84 63 124 102
03R 30 131 130 83
02E 93 89 208 151
06M 70 62 92 81
04E 96 76 52 32
00D 106 62 123 106
我想做的是从数据框2创建较小的数据框-由数据框1中的分组过滤。每个地理区域代码可以出现在多个查找中。我有一个for循环的基本概念,但不能完全使其正常工作。
数据帧输出1 :
MALE_0-4 MALE_5-9 FEMALE_80-84 FEMALE_85+
00C 132 121 173 204
03H 127 131 130 83
02D 70 62 92 81
05H 96 76 52 32
00C 106 62 123 106
02E 93 89 208 151
04E 96 76 52 32
数据帧输出2 :
MALE_0-4 MALE_5-9 FEMALE_80-84 FEMALE_85+
06M 75 59 43 48
01X 84 63 124 102
02P 93 89 208 151
03R 75 59 43 48
02P 10 121 173 204
03R 84 63 124 102
03R 30 131 130 83
06M 70 62 92 81
00D 106 62 123 106
...
希望这是合理的,任何帮助将不胜感激。
答案 0 :(得分:0)
按链接的重复问题进行操作,这是您应使用的(概略):
for _, row in df1.iterrows():
broken_down = df2[df2['region'].isin(row)]
答案 1 :(得分:0)
只需添加代码即可将其追加到列表中,以备将来使用。感谢sophros的解决:
broken_down = []
for _, row in df1.iterrows():
broken_down.append(df2[df2['region'].isin(row)])