Python 按多个列分组的问题(每次的行数不同)

Python 按多个列分组的问题(每次的行数不同),python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个数据框,它存储了大约30000个文档的信息,这些文档分布在200000行上。这是因为一个文档可以有多个主题术语。因此,除了“SubjectTerm”列之外,讨论同一文档的行是相同的 我的目标是:一个数据框架,其中一行表示一个文档,其所有主题术语都在一个列表中。由于同一文档的所有列都相同,因此我使用了GROUPBY。我按不同的列将行分组。但是,每次我得到的行数不同。到目前为止,我就是这么做的。知道我做错了什么吗 SubjectTerms_Kreuztabelle = EBSCOhost_u

我有一个数据框,它存储了大约30000个文档的信息,这些文档分布在200000行上。这是因为一个文档可以有多个主题术语。因此,除了“SubjectTerm”列之外,讨论同一文档的行是相同的

我的目标是:一个数据框架,其中一行表示一个文档,其所有主题术语都在一个列表中。由于同一文档的所有列都相同,因此我使用了GROUPBY。我按不同的列将行分组。但是,每次我得到的行数不同。到目前为止,我就是这么做的。知道我做错了什么吗

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

您必须有一些隐藏的空白,这样可能会有所帮助:

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

您的数据显然不完全相同,请尝试使用查看哪里有额外的字符,如空格(大多数情况下)。谢谢!结果发现数据并没有那么好。做了一些清洁,现在它工作了。