Разрезание фрейма данных в новые фреймы данных - PullRequest
0 голосов
/ 13 апреля 2019

Я должен разделить свой фрейм данных на новые фреймы данных, сгруппированные по назначению (я использую панд).

Это мой фрейм данных с именем data:

Flight N .    DEP.     ARR.     Company
_________________________________________________
1             JFK      GTW      British Airways
2             JFK      LDN      British Airways
3             JFK      GNR      British Airways
4             JFK      CDG      Air France
5             JFK      DXB      Emirates
3             JFK      CDG      Lufthansa
7             JFK      DXB      Emirates
8             JFK      DXB      Emirates
9             JFK      LDN      British Airways
10            JFK      GNR      LATAM Airways

Iсоздаст новый Dataframe, сгруппированный по описанию, таким образом:

dataframe_DXB

5             JFK      DXB      Emirates
7             JFK      DXB      Emirates
8             JFK      DXB      Emirates

dataframe_CDG

4             JFK      CDG      Air France
3             JFK      CDG      Lufthansa

и т. д.

* 1016Проблема в том, что я могу нарезать, записывая каждый пункт назначения, но я бы создал цикл для автоматизации процесса.И после этого я смогу вспомнить каждый отдельный фрейм данных, записывая dataframe_ + destination

Ответы [ 4 ]

1 голос
/ 13 апреля 2019

Вы можете попробовать это, чтобы отфильтровать ваш фрейм данных в соответствии с местами назначения, он не использует группирование по, но должен делать работу.

dataframe = {} # empty dataframe dictionary
destination = [] # list of destination
for dest in destination:
    dataframe[dest] = data[data['ARR.'] == dest]

Этот код сохранит ваши фреймы данных в словаре dataframe и может получить к нему доступ, используя ключи, например: dataframe['DXB']

0 голосов
/ 13 апреля 2019

Это тоже может сработать.

dict_of_dfs = {}
for n, g in df.groupby(df['ARR']):
    dict_of_dfs[n] = g
0 голосов
/ 13 апреля 2019

Если вы хотите записать в файл , это будет работать:

for destination, sub_df in data.groupby('ARR')
    with open(f'dataframe_{destination}.csv') as f:
        sub_df.to_csv(f)

Если вы просто хотите, чтобы группы были в одной переменной, например dict:

df_by_destination = {destination: sub_df for destination, sub_df in data.groupby('ARR')}
0 голосов
/ 13 апреля 2019

Загляните в pandas groupby https://www.shanelynn.ie/summarising-aggregation-and-grouping-data-in-python-pandas/

Однако для того, чтобы получить доступ к сгруппированным фреймам данных, вам все равно необходим слишком большой цикл

Что касается вашего желания получить доступ к фрейму данных с помощью dataframe_ + destination, просто напишитекадр данных в словарь:

Фрагмент:

dic={}
grouped_df = data.groupby('ARR')

for dest,df in grouped_df:
 dic[dest] = df
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...