2016-06-28 7 views
1

эй ребята pandas проблема здесь, 4 кадра данных за последние 400 дней из 4 разных запасов, которые будут объединены в один, они находятся в разных индексах, поскольку исходное притяжение для каждого запаса от quandl начинается с разных дат начала данных.добавление столбцов в пандах с разными именами столбцов

каждый кадр данных выглядит примерно так:

  a  b  c  d  e 
545 539.00 558.00 535.00 539.00 6.50 
546 549.00 550.48 535.00 549.00 10.00 
547 549.50 559.00 539.00 549.50 0.50 
548 570.00 570.00 535.00 570.00 20.50 

и это:

  g  h  i  j  k 
461 4.480 4.62 4.45 4.480 0.02 
462 4.420 4.55 4.42 4.420 0.05 

Моя проблема заключается в том, что когда я

result = pd.concat([clin, avo, aph, abc], axis=1, ignore_index=True) 

результат:

0 1 2 3 4  5  6  7  8  9  10  11  12 \ 
461 NaN NaN NaN NaN NaN 4.480 4.62 4.45 4.480 0.02 NaN NaN NaN 
462 NaN NaN NaN NaN NaN 4.420 4.55 4.42 4.420 0.05 NaN NaN NaN 
463 NaN NaN NaN NaN NaN 3.920 4.50 3.70 3.920 0.50 NaN NaN NaN 
464 NaN NaN NaN NaN NaN 3.920 3.95 3.90 3.920 0.00 NaN NaN NaN 
465 NaN NaN NaN NaN NaN 3.780 4.15 3.78 3.780 0.15 NaN NaN  

по существу результирующий фрейм данных не 400 строк с 20 функциями, я понимаю, что это связано с тем, что для столбцов в других фреймах данных будет Nan, поскольку имена разные, но Im путают, как присоединиться к ним независимо, I нужно быть basicallly очень сырой присоединиться в конце я попытался reset_index, но думать об этом сейчас, конечно, не работал бы потому, что оно не создают значения для столбца а в других dataframes, которые не имеют столбец

+0

'ignore_index' игнорирует имена ярлыков, для' axis = 1' он игнорирует s имена столбцов, если вы хотите просто добавить столбцы, то вы можете называть 'reset_index (drop = True)' на каждом df в списке – EdChum

+0

спасибо за ответного человека, но уже выполнил сброс индекса для всех четырех данных , а затем называется concat с осью = 1, но он по-прежнему поставляется с 886 строками вместо 400 – entercaspa

+0

, что не должно произойти, вы сделали что-то похожее на мой ответ? Вы уверены, что наибольший df - 400 строк? – EdChum

ответ

1

Если вы не заботитесь об индексе, то вы могли бы сделать:

In [7]: 

pd.concat([df.reset_index(drop=True),df1.reset_index(drop=True)], axis=1) 
Out[7]: 
     a  b c  d  e  g  h  i  j  k 
0 539.0 558.00 535 539.0 6.5 4.48 4.62 4.45 4.48 0.02 
1 549.0 550.48 535 549.0 10.0 4.42 4.55 4.42 4.42 0.05 
2 549.5 559.00 539 549.5 0.5 NaN NaN NaN NaN NaN 
3 570.0 570.00 535 570.0 20.5 NaN NaN NaN NaN NaN 
+0

, это помогло, получило его отлично, хотя я это пробовал; Я вызвал each_dataframe.reset_index (drop = True), прежде чем я вызвал функцию concat, не работал для somerea son – entercaspa

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