У меня есть следующие серии:
>>>counts = pd.Series({'0.0':5, '1.0':6, '2.0':14, '3.0':98})
>>>counts
0.0 5
1.0 6
2.0 14
3.0 98
dtype: int64
и фрейм данных:
>>>topic_keywords = [(0, 0.0, 'challenge, web, language, require, bot'),
(1, 3.0, 'time, huge, figure, image, run, develop'),
(2, 1.0, 'datum, user, access, speech, bandwidth'),
(3, 2.0, ' main, decide, audio, sensor, disabled, make'),
(4, 2.0, ' main, decide, audio, sensor, disabled, make'),
(5, 0.0, 'challenge, web, language, require, bot')]
>>> topicKeywordsDf = pd.DataFrame(topic_keywords, columns=['ID', 'Topic_Num', 'Topic_Keywords'])
>>> topicKeywordsDf = topicKeywordsDf.set_index('ID')
>>> topicKeywordsDf
Topic_Num Topic_Keywords
ID
0 0.0 challenge, web, language, require, bot
1 3.0 time, huge, figure, image, run, develop
2 1.0 datum, user, access, speech, bandwidth
3 2.0 main, decide, audio, sensor, disabled, make
4 2.0 main, decide, audio, sensor, disabled, make
5 0.0 challenge, web, language, require, bot
Я хотел бы объединить фрейм данных в серии, где индекс серии будет соответствовать столбец Topic_Num
кадра данных:
Topic_Num Count Topic_Keywords
0.0 5 challenge, web, language, require, bot
1.0 14 datum, user, access, speech, bandwidth
2.0 6 main, decide, audio, sensor, disabled, make
3.0 98 time, huge, figure, image, run, develop
Предпочтительно, конечный кадр данных должен быть отсортирован на основе Topic_Num
. Как мне объединить их?
Попытки:
counts_df = counts.to_frame()
merge = counts_df.merge(topicKeywordsDf, left_index=True, right_on="Topic_Num")
Но получите эту ошибку:
ValueError: Вы пытаетесь объединить на объекте и столбцах float64. Если вы продолжаете sh, вы должны использовать pd.concat