2017-02-23 70 views
0

Исходя из того факта, что непосредственно добавить два dataframe с разными номерами столбцов, возникла ошибка как pandas.io.common.CParserError: Error tokenizing data. C error: Expected 4 fields in line 242, saw 5. Как я могу сделать с pandas, чтобы избежать ошибки?Как добавить два pandas.DataFrame с разными номерами столбцов

У меня есть один наивный подход: только для обработки исходных данных, чтобы сделать число столбцов одинаковым.

Не может быть более элегантным ?? Я думаю, что недостающие столбцы могут быть заполнены np.nan после pd.append.

ответ

2

Вы должны иметь возможность конкатенатора данных, как показано на рисунке.

Вам нужно будет переименовать столбцы в соответствии с вашими потребностями.

df1 = pd.DataFrame({'a':[1,2,3,4],'b':[1,2,3,4],'c':[1,2,3,4]}) 
df2 = pd.DataFrame({'a':[1,2,3,4],'c':[1,2,3,4]}) 

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

print('df1') 
print(df1) 
print('\ndf2') 
print(df2) 
print('\ndf') 
print(df) 

Выход:

df1 
    a b c 
0 1 1 1 
1 2 2 2 
2 3 3 3 
3 4 4 4 

df2 
    a c 
0 1 1 
1 2 2 
2 3 3 
3 4 4 

df 
    a b c 
0 1 1.0 1 
1 2 2.0 2 
2 3 3.0 3 
3 4 4.0 4 
0 1 NaN 1 
1 2 NaN 2 
2 3 NaN 3 
3 4 NaN 4 
+0

Спасибо !!! Оно работает! –

 Смежные вопросы

  • Нет связанных вопросов^_^