Объединить словарь панд DataFrame - PullRequest
2 голосов
/ 22 апреля 2019

У меня есть Python 3 словарь Pandas DataFrame, который имеет следующую структуру для каждого DataFrame-

time  animal_id       x       y  Distance  Average_Speed  Average_Acceleration  Direction
0    1.0      312.0  405.29  417.76  0.000000       0.000000                   0.0   0.000000
5    2.0      312.0  405.31  417.37  0.070000       0.082164                   0.0 -90.000000
10   3.0      312.0  405.31  417.07  0.215407       0.157562                   0.0 -68.198591
15   4.0      312.0  405.30  416.86  0.192354       0.171618                   0.0 -62.102729
20   5.0      312.0  405.29  416.71  0.162788       0.182343                   0.0 -47.489553

Размер / форма каждого из пяти кадров данных Pandas:

for animal_id in data_animal_id_groups.keys():
    data_animal_id_groups[animal_id].reset_index(drop = True)

Animal ID = 312, Shape = (43201, 4)
Animal ID = 511, Shape = (43201, 4)
Animal ID = 607, Shape = (43201, 4)
Animal ID = 811, Shape = (43201, 4)
Animal ID = 905, Shape = (43201, 4)

Я хочу объединить все 5 или вообще n DataFrame Pandas, содержащиеся в объекте словаря, в один файл CSV. Как мне поступить?

Обратите внимание, что структура каждого кадра данных Pandas останется прежней. Тем не менее, количество строк может варьироваться.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 22 апреля 2019

Это должно сделать это:

df = pd.DataFrame() # Create an empty dataframe, this will be your final dataframe

for key, sub_df in data_animal_id_groups.items():
    df = df.append(sub_df, ignore_index=False) # Add your sub_df one by one

print(df)

И если вы хотите сохранить его как CSV:

df.to_csv("merged_dataframe.csv")
1 голос
/ 22 апреля 2019

С dict вы можете использовать concat

pd.concat(data_animal_id_groups.values()) #.to_csv('youfile.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...