2016-11-03 2 views
0

Я пытаюсь создать очень большой фреймворк данных, состоящий из одного столбца из множества меньших фреймов данных (переименованного в имя dataframe). Я использую CONCAT() и перебираю словарные значения, которые представляют собой фреймы данных и перебирают значения индекса, для создания большого фрейма данных. CONCAT() join_axes является общим индексом для всех фреймов данных. Это работает отлично, однако у меня есть дубликаты имен столбцов.
я должен быть в состоянии цикла по индексам на, специфические окна как часть моего окончательного создания dataframe - так извлекая этот шаг Isnt вариантPandas CONCAT() с объединенными столбцами в Creation

Например, это приводит к следующему окончательному dataframe с duplciate столбцами:

enter image description here

есть ли способ, что я могу использовать CONCAT(), как все тоже я, но объединить столбцы для получения вывода, как так ?:

enter image description here

+0

Возможно, вы можете сделать 'df = pd.concat ([df1, df2], axis = 1)' – JMat

+0

Это не работает. У меня есть сотни фреймов данных и вы должны иметь join_axis по индексу – cwse

ответ

1

Я думаю, что вам нужно:

df = pd.concat([df1, df2]) 

Или, если есть дубликаты в колонках использовать groupby где, если некоторые значения накладываются друг на друга суммируются:

print (df.groupby(level=0, axis=1).sum()) 

Пример:

df1 = pd.DataFrame({'A':[5,8,7, np.nan], 
        'B':[1,np.nan,np.nan,9], 
        'C':[7,3,np.nan,0]}) 

df2 = pd.DataFrame({'A':[np.nan,np.nan,np.nan,2], 
        'B':[1,2,np.nan,np.nan], 
        'C':[np.nan,6,np.nan,3]}) 
print (df1) 
    A B C 
0 5.0 1.0 7.0 
1 8.0 NaN 3.0 
2 7.0 NaN NaN 
3 NaN 9.0 0.0 

print (df2) 
    A B C 
0 NaN 1.0 NaN 
1 NaN 2.0 6.0 
2 NaN NaN NaN 
3 2.0 NaN 3.0 

df = pd.concat([df1, df2],axis=1) 
print (df) 
    A B C A B C 
0 5.0 1.0 7.0 NaN 1.0 NaN 
1 8.0 NaN 3.0 NaN 2.0 6.0 
2 7.0 NaN NaN NaN NaN NaN 
3 NaN 9.0 0.0 2.0 NaN 3.0 

print (df.groupby(level=0, axis=1).sum()) 
    A B C 
0 5.0 2.0 7.0 
1 8.0 2.0 9.0 
2 7.0 NaN NaN 
3 2.0 9.0 3.0 
Смежные вопросы