Я пытаюсь выполнить pd.merge
способом outer
на двух столбцах. Но мне нужен выходной фрейм данных, чтобы два столбца фактически объединились, чтобы не было значений Nan.
Я приведу пример. Предположим, что следующие столбцы данных, которые будут объединяться в столбцах меток времени:
a1=['2019-09-01 00:00:00', '2019-09-01 01:00:00', '2019-09-01 03:00:00', '2019-09-10 01:00:00']
a2=['a','c_1','d','f_1']
b1=['2019-09-01 00:10:00', '2019-09-01 01:00:00', '2019-09-01 03:07:00', '2019-09-10 01:00:00']
b2=['b','c_2', 'e', 'f_2']
A=pd.DataFrame({'a1':a1, 'a2':a2})
A.a1=pd.to_datetime(A.a1)
B=pd.DataFrame({'b1':b1, 'b2':b2})
B.b1=pd.to_datetime(B.b1)
Объединенный кадр данных, который я хочу получить, близок к этому:
merged=pd.merge(A,B, left_on='a1', right_on='b1', how='outer', sort=True)
print(merged)
>>>
a1 a2 b1 b2
0 2019-09-01 00:00:00 a NaT NaN
1 NaT NaN 2019-09-01 00:10:00 b
2 2019-09-01 01:00:00 c_1 2019-09-01 01:00:00 c_2
3 2019-09-01 03:00:00 d NaT NaN
4 NaT NaN 2019-09-01 03:07:00 e
5 2019-09-10 01:00:00 f_1 2019-09-10 01:00:00 f_2
, за исключением того, что требуемый вывод должен иметь 'a1 'и' b1 'объединены. Это должно выглядеть следующим образом:
datetime a2 b2 #datetime column has 'a1' and 'b1' merged
0 2019-09-01 00:00:00 a NaN
1 2019-09-01 00:10:00 NaN b
2 2019-09-01 01:00:00 c_1 c_2
3 2019-09-01 03:00:00 d NaN
4 2019-09-01 03:07:00 NaN e
5 2019-09-10 01:00:00 f_1 f_2
Есть какие-нибудь мысли о том, как я могу выполнить это в стиле пифоники / панда?
Заранее спасибо: -)