2015-05-15 3 views
1

Я генерирую список имен конференций из базы данных и пытаясь заполнить их в столбце другого фрейма. По какой-то причине он не работает и не возвращает NaN. Может ли кто-нибудь объяснить, почему это так? Почему последняя строка не делает то, что она должна?Заполнение столбца dataframe в pandas с помощью другого столбца Dataframe

df_conf = pd.read_sql("select distinct Conference from publications where year>=1991 and length(conference)>1 order by conference", db) 

df_if= pd.DataFrame(index=df_conf['Conference'], columns=['Conference','IF1994','IF1995']) 


df_if['Conference'] = df_conf['Conference'] 
+1

Это потому, что индексы не выровнены, если 2 df имеют одинаковую длину, вы можете сделать 'df_if ['Conference'] = df_conf ['Conference']. Values', чтобы назначить значения массива np – EdChum

+0

Это решило , Они должны были выровняться, потому что, если вы заметили, что индекс 'df_if' является' df_conf ['Conference'] ' – BKS

+1

Все, что вы сделали, было установлено индексом для значений str, что не означает индекс совпадений' df_conf' 'df_if' – EdChum

ответ

2

Причина вы получаете все NaN значения потому, что значения индекса не выровнены.

Чтобы присвоить значения, как только значения, которые вы можете сделать это:

df_if['Conference'] = df_conf['Conference'].values 

Что вы сделали создать df_if с индексом равным df_conf['conference'], но это не означает, что индекс df_if и df_conf матча.

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