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

2024-09-29 01:33:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,它存储了大约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

Tags: 数据文档true主题indexlist术语reset
1条回答
网友
1楼 · 发布于 2024-09-29 01:33:29

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

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

相关问题 更多 >