У меня возникают проблемы при переиндексации фрейма данных pandas после удаления значений NaN.
Я пытаюсь извлечь диктанты в столбце df в другой df, а затем соединить эти значения с исходным df в соответствующем строки.
df = pd.DataFrame({'col1': [1, 2, 3, 4, 5],
'col2': [np.NaN, np.NaN, {'aa': 11, 'bb': 22}, {'aa': 33, 'bb': 44}, {'aa': 55, 'bb': 66}]})
df
col1 col2
0 1 NaN
1 2 NaN
2 3 {'aa': 11, 'bb': 22}
3 4 {'aa': 33, 'bb': 44}
4 5 {'aa': 55, 'bb': 66}
Желаемый конечный результат:
col1 aa bb
0 1 NaN NaN
1 2 NaN NaN
2 3 11 22
3 4 33 44
4 5 55 66
Если я передаю col2 в функцию pandas .tolist (), dict не распаковывается.
pd.DataFrame(df['col2'].tolist())
0 NaN
1 NaN
2 {'aa': 11, 'bb': 22}
3 {'aa': 33, 'bb': 44}
4 {'aa': 55, 'bb': 66}
Если я использую dropna (), dict распаковывается, но индекс сбрасывается
pd.DataFrame(df['col2'].dropna().tolist())
aa bb
0 11 22
1 33 44
2 55 66
Если я пытаюсь сбросить индекс до исходного df, данные строки появляются в различные позиции индекса.
pd.DataFrame(df['col2'].dropna().tolist()).reindex(df.index)
aa bb
0 11.0 22.0
1 33.0 44.0
2 55.0 66.0
3 NaN NaN
4 NaN NaN
Данные различаются, и невозможно узнать, сколько значений NaN будет в любой точке столбца.
Любая помощь очень ценится .