У меня есть две панды DataFrames:Регистрация DateTimes из DataFrames вперед и заполнения данных
DataFrame a
2013-03-25 13:15:00 1
2013-03-26 13:15:00 2
2013-03-28 13:15:00 4
2013-03-29 13:15:00 5
и DataFrame b
2013-03-25 13:15:00 25
2013-03-27 13:15:00 15
2013-03-28 13:15:00 5
2013-03-29 13:15:00 10
Я пытаюсь присоединиться даты и вперед заливку ценности. Сейчас я делаю это так:
ab = pd.concat([a, b], axis=1)
ab.fillna(method='ffill', inplace=True)
a = ab.ix[:,0]
b = ab.ix[:,1]
Так, ab
является
2013-03-25 13:15:00 1 25
2013-03-26 13:15:00 2 NaN
2013-03-27 13:15:00 NaN 15
2013-03-28 13:15:00 4 5
2013-03-29 13:15:00 5 10
, а затем
2013-03-25 13:15:00 1 25
2013-03-26 13:15:00 2 25
2013-03-27 13:15:00 2 15
2013-03-28 13:15:00 4 5
2013-03-29 13:15:00 5 10
Это имеет два недостатка. Во-первых, a
и b
теперь являются сериями. Во-вторых, это решение не будет работать для многоканальных DataFrames. Можно ли сделать это только для a
и b
на месте без переезда через ab
. Это похоже на довольно стандартный процесс. Что мне не хватает?
Edit:
a.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 4 entries, 2013-03-25 13:15:00 to 2013-03-29 13:15:00
Data columns (total 1 columns):
icap 4 non-null float64
dtypes: float64(1)
memory usage: 64.0 bytes
b
эквивалентно.
Извините, вы хотите внешнее слияние: 'a.merge (b, how = 'outer'). Ffill()'? Я не знаю, являются ли даты вашим индексом или столбцом, вам нужно прояснить это. – EdChum
Что вернет рамку данных с двумя столбцами? Я хочу, чтобы 'a' и' b' были изменены. – joachim
Итак, вы хотите 'a.combine_first (b) .ffill()'? Также вы не ответили на вопрос о том, что такое ваша структура df, можете ли вы публиковать 'a.info()' и 'b.info()', спасибо – EdChum