Python 按多个列分组的问题(每次的行数不同)
我有一个数据框,它存储了大约30000个文档的信息,这些文档分布在200000行上。这是因为一个文档可以有多个主题术语。因此,除了“SubjectTerm”列之外,讨论同一文档的行是相同的 我的目标是:一个数据框架,其中一行表示一个文档,其所有主题术语都在一个列表中。由于同一文档的所有列都相同,因此我使用了GROUPBY。我按不同的列将行分组。但是,每次我得到的行数不同。到目前为止,我就是这么做的。知道我做错了什么吗Python 按多个列分组的问题(每次的行数不同),python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个数据框,它存储了大约30000个文档的信息,这些文档分布在200000行上。这是因为一个文档可以有多个主题术语。因此,除了“SubjectTerm”列之外,讨论同一文档的行是相同的 我的目标是:一个数据框架,其中一行表示一个文档,其所有主题术语都在一个列表中。由于同一文档的所有列都相同,因此我使用了GROUPBY。我按不同的列将行分组。但是,每次我得到的行数不同。到目前为止,我就是这么做的。知道我做错了什么吗 SubjectTerms_Kreuztabelle = EBSCOhost_u
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
您的数据显然不完全相同,请尝试使用查看哪里有额外的字符,如空格(大多数情况下)。谢谢!结果发现数据并没有那么好。做了一些清洁,现在它工作了。