Создание меньших фреймов данных из больших фреймов данных с использованием нескольких критериев фильтрации: с использованием Python и Pandas - PullRequest
0 голосов
/ 15 ноября 2018

Доброе утро,

В основном у меня есть 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

Я пытаюсь создать меньшие кадры данных из Dataframe 2 - отфильтрованные по группам из Dataframe 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

...

Надеюсь, что это имеет смысл, и любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Просто добавьте код для добавления в список, просто для будущего использования.Спасибо sophros за решение:

broken_down = []
for _, row in df1.iterrows():
    broken_down.append(df2[df2['region'].isin(row)])
0 голосов
/ 15 ноября 2018

Исходя из связанного дублирующего вопроса, это то, что вы должны использовать (схематично):

for _, row in df1.iterrows():
    broken_down = df2[df2['region'].isin(row)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...