Очевидно, ваши фреймы данных (или хотя бы один) в некотором отношении отличаются от того, что вы представили в своем посте.
Начните с такого теста:
txt1 = ''' event_type_1 snap_CA snap_TX snap_WI
2011-01-29 NaN 0 0 0
2011-01-30 NaN 0 0 0
2011-01-31 NaN 0 0 0
2011-02-01 NaN 1 1 0'''
txt2 = ''' _0 _1 _2 _3 _4 _5
2011-01-29 0 0 0 0 0 0
2011-01-30 0 0 0 0 0 0
2011-01-31 0 0 0 0 0 0
2011-02-01 0 0 0 0 0 0'''
left_t = pd.read_csv(io.StringIO(txt1), sep=r'\s+', index_col=0, parse_dates=True)
right_t = pd.read_csv(io.StringIO(txt2), sep=r'\s+', index_col=0, parse_dates=True)
Затем print(left_t)
. Результат должен быть:
event_type_1 snap_CA snap_TX snap_WI
2011-01-29 NaN 0 0 0
2011-01-30 NaN 0 0 0
2011-01-31 NaN 0 0 0
2011-02-01 NaN 1 1 0
Обратите внимание, что вышеприведенная распечатка содержит , а не содержит пустую строку после строки заголовка.
Та же распечатка для right_t должно дать:
_0 _1 _2 _3 _4 _5
2011-01-29 0 0 0 0 0 0
2011-01-30 0 0 0 0 0 0
2011-01-31 0 0 0 0 0 0
2011-02-01 0 0 0 0 0 0
также без какой-либо пустой строки после имен столбцов.
И, наконец, запустить print(left_t.join(right_t))
. Результат, который я получил:
event_type_1 snap_CA snap_TX snap_WI _0 _1 _2 _3 _4 _5
2011-01-29 NaN 0 0 0 0 0 0 0 0 0
2011-01-30 NaN 0 0 0 0 0 0 0 0 0
2011-01-31 NaN 0 0 0 0 0 0 0 0 0
2011-02-01 NaN 1 1 0 0 0 0 0 0 0
Чтобы продолжить расследование дела, запустите left_t.info()
и right_t.info()
, затем то же самое для обоих ваших исходных фреймов данных ( left и right ).
Сравните соответствующую информацию, ищите какие-либо различия, например: index должен иметь DatetimeIndex type .
Сравнить также left_t.columns
с аналогичной распечаткой для вашего оригинала left DataFrame. Оба они должны иметь тип Index (не MultiIndex ).
На самом деле, дополнительная пустая строка после строки заголовка в ваших распечатках вызывает подозрения, что что-то не так с вашими исходными фреймами данных.