Я хочу знать, как я могу получить все столбцы с одинаковым именем из нескольких фреймов данных в один фрейм данных. Я создал следующий код:
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
И то же самое для других имен.