2016-10-25 2 views
1

result dataframe получает значение NaN столбцу назначается b, которая не представлена ​​в dataframe dfa:Как присвоить значение по умолчанию при выполнении CONCAT на DataFrames

dfa = pd.DataFrame({'a':[1]}) 
dfb = pd.DataFrame({'a':[10], 'b':[10]}) 
result = pd.concat([dfa, dfb]) 
print result 

Вот результат:

a  b 
0 1 NaN 
0 10 10.0 

Вместо NaN Я предпочел бы присвоить целочисленное значение 0. Это можно сделать?

ответ

1

Вы можете использовать reindexdfa по колонкам dfb и добавить параметр fill_value=0:

dfa = dfa.reindex(columns=dfb.columns, fill_value=0) 
print (dfa) 
    a b 
0 1 0 

result = pd.concat([dfa, dfb], ignore_index=True) 
print (result) 
    a b 
0 1 0 
1 10 10 
+0

Будет ли можно проиндексировать 'result' поэтому индексы в последовательном порядке, как' [0,1] 'вместо из '[0,0]'? – alphanumeric

+0

Да, добавьте параметр 'ignore_index = True' в [' concat'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html). – jezrael

+0

Пятно на! Благодаря! – alphanumeric

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