Попытка преобразовать столбцы из нескольких фреймов данных с тем же именем в новый фрейм данных - PullRequest
0 голосов
/ 09 июля 2020

Я хочу знать, как я могу получить все столбцы с одинаковым именем из нескольких фреймов данных в один фрейм данных. Я создал следующий код:

import pandas as pd 

names = ['John', 'Ben', 'Carl', 'Frank']

name = {}
name2 = {}
name3 = {}
name4 = {}

for n in names:
    temp = {}
    temp2 = {}
    temp3 = {}
    temp4 = {}
    
    temp.update({'Year' : '31/12/2016', 'expl' : '123', 'expl2' : '456'})
    temp2.update({'Year' : '31/12/2017', 'expl' : '123'})
    temp3.update({'Year' : '31/12/2018', 'expl' : '123'})
    temp4.update({'Year' : '31/12/2019', 'expl' : '123', 'expl4' : '789'})
    
    name[n] = temp
    name2[n] = temp2
    name3[n] = temp3
    name4[n] = temp4
    
df = pd.DataFrame(name)
df2 = pd.DataFrame(name2)
df3 = pd.DataFrame(name3)
df4 = pd.DataFrame(name4)

Итак, теперь каждое имя сгруппировано по годам, но я хочу сгруппировать их по имени.

это результат фреймов данных.

Итак, я подумал, если я запущу al oop для каждого столбца с первым именем, а затем объединю их вместе. Затем запустите al oop над вторым именем и объедините их вместе. Et c. Вот что я сделал:

for n in names:
    df_0 = pd.DataFrame()
    df_1 = pd.DataFrame()
    df_2 = pd.DataFrame()
    df_3 = pd.DataFrame()
    
    df_0 = df.update(df.loc[:n])
    df_1 = df2.update(df2.loc[:n])
    df_2 = df3.update(df3.loc[:n])
    df_3 = df4.update(df4.loc[:n])

Это возвращает None четыре раза. Результат должен быть примерно таким:

        John
Year    31/12/2016    31/12/2017    31/12/2018    31/12/2019
expl    123           123           123           123
expl2   456           NaN           NaN           NaN
expl4   NaN           NaN           NaN           789

И то же самое для других имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...