使用多个筛选条件从较大的数据帧创建较小的数据帧:使用python和pandas

2024-06-28 19:36:50 发布

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

早上好

基本上我有两个来自CSV的熊猫数据帧:

数据框1:每行是一个组,其中行索引是地理区域代码,列是最相似的前5个区域。e、 g组:

       0    1    2    3    4    5    
Rank                                                       
00C   00C  03H  02D  05H  02E  04E  
00D   00D  02P  02X  01X  03R  06M  

数据框2:这是一个更大的数据框,包含按年龄组、性别和地理区域划分的医院活动编号。e、 g组:

^{pr2}$

我要做的是从DataFrame2创建更小的数据帧——由DataFrame1的分组过滤。每个地理区域代码可以出现在多个查找中。我对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

。。。在

希望这是有意义的,任何帮助将不胜感激。在


Tags: csv数据代码区域地理malefemale编号
2条回答

根据链接的重复问题,您应该使用以下内容(粗略):

for _, row in df1.iterrows():
    broken_down = df2[df2['region'].isin(row)]

只是添加要附加到列表的代码,以备将来使用。感谢Sophoros解决了:

broken_down = []
for _, row in df1.iterrows():
    broken_down.append(df2[df2['region'].isin(row)])

相关问题 更多 >