Проблемы с группировкой по нескольким столбцам (разное количество строк каждый раз) - PullRequest
0 голосов
/ 07 июня 2018

У меня есть фрейм данных, в котором хранится информация о примерно 30 000 документов, распределенных по 200 000 строк.Это потому, что один документ может иметь несколько тематических терминов.Итак, строки, обсуждающие один и тот же документ, идентичны, за исключением столбца «SubjectTerm».

Моя цель: фрейм данных, в котором одна строка представляет один документ со всеми его предметными терминами в списке.Поскольку все столбцы одного и того же документа одинаковы, я использовал group by.Я сгруппировал строки по разным столбцам.Тем не менее, я получаю разное количество строк каждый раз.Это то, что я пытался до сих пор.Есть идеи, что я сделал не так?

SubjectTerms_Kreuztabelle = EBSCOhost_unselektiert.copy(deep=True)
SubjectTerms_Kreuztabelle.dropna(subset=["SubjectTerm"], inplace = True)

SubjectTerms_Kreuztabelle2 = SubjectTerms_Kreuztabelle.groupby(["Jahr", "Titel"])["SubjectTerm"].apply(list).reset_index()  #29.338 rows

SubjectTerms_Kreuztabelle4 = SubjectTerms_Kreuztabelle.groupby(["Jahr", "Datum", "Medium-Typ", "Titel"])["SubjectTerm"].apply(list).reset_index() #29.606 rows

1 Ответ

0 голосов
/ 07 июня 2018

У вас должны быть какие-то скрытые пробелы, чтобы это могло помочь:

import pandas as pd

df = pd.DataFrame({'A': ['a', 'b', '  a  '],
                   'B': [1, 2, 3]})

print(df.groupby('A')['B'].sum())

#A
#  a      3
#a        1
#b        2
#Name: B, dtype: int64

df_obj = df.select_dtypes(['object'])

df[df_obj.columns] = df_obj.apply(lambda x: x.str.strip())

print(df.groupby('A')['B'].sum())

#A
#a    4
#b    2
#Name: B, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...