我有一个pandas dataframe,我使用groupby()函数对它进行分组,除了pandas跳过了重复的值,只显示唯一的值。
下面是一个示例数据帧
data = [
['American Mathematical Society', 'Journal', 2, 'Mathematics & Statistics'],
['American Mathematical Society', 'Journal', 2, 'Mathematics & Statistics'],
['American Mathematical Society', 'Journal', 38, 'Mathematics & Statistics'],
['American Mathematical Society', 'Journal', 4, 'Mathematics & Statistics']]
df = pd.DataFrame(data, columns = ['Provider', 'Type', 'Downloads JR1 2017', 'Field'])现在,我使用groupby函数在列表中按我喜欢的方式对它们进行分组。
jr1_provider = df.groupby(['Provider', 'Field', 'Downloads JR1 2017'], as_index=False).sum().values.tolist()下面是输出:
[['American Mathematical Society', 'Mathematics & Statistics', 2, 'JournalJournal'], ['American Mathematical Society', 'Mathematics & Statistics', 4, 'Journal'], ['American Mathematical Society', 'Mathematics & Statistics', 38, 'Journal']]但是,输出中应该有4个项目。我看到结果中删除了重复的值,因为其中两行的“Downloads JR1 2017”列中的值为“2”。
为什么?怎样才能返回所有的结果呢?
我想要得到的输出是'provider‘的名称,加上'Downloads JR1 2017’的总和。示例:
['American Mathematical Society', 46]发布于 2019-06-22 02:01:21
根据您在评论中的其他详细信息,如何
df.groupby(['Provider', 'Field'], as_index=False).sum()发布于 2019-06-22 00:00:05
所以你可以检查transform
jr1_provider = provider_subset.groupby(['Provider', 'Field', 'Downloads JR1 2017'], as_index=False).transform('sum').values.tolist()https://stackoverflow.com/questions/56706848
复制相似问题