Я хочу объединить строки таким образом, чтобы я объединял значения для определенного столбца, но получал неожиданный результат в своем собственном наборе данных. Вот пример.
df = pd.DataFrame({'id':['1', '2', '3', '1', '3', '4', '4', '6', '6'],
'words':['a', 'b', 'c', 'b', 'a', 'a', 'b', 'c', 'a' ]})
df2 = df.groupby('id')['words'].apply(' '.join).reset_index()
df2.head()
Результат выглядит так, как я хочу, и это нормально.
id words
0 1 a b
1 2 b
2 3 c a
3 4 a b
4 6 c a
Уникальные значения, основанные на словах столбца, и снова это выглядит нормально:
df2.words.value_counts()
c a 2
a b 2
b 1
Name: words, dtype: int64
Однако, в моем большом наборе данных, который очень большой (я не могу воспроизвести его здесь), вывод df2.words.value_counts()
дает что-то подобное, и я не могу понять, почему. Есть идеи, что здесь может пойти не так?
df2.words.value_counts()
c a 10
a c 5
a b 10
b a 5
b 1
Name: words, dtype: int64
Но это должно быть так:
df2.words.value_counts()
c a 15
a b 10
b 1
Name: words, dtype: int64
Значения здесь поддельные, но я получаю те же значения для столбца 'words'.
Есть идеи?