如何在具有唯一键和序列值的列中唯一求和

Posted

技术标签:

【中文标题】如何在具有唯一键和序列值的列中唯一求和【英文标题】:How to unique sum in a column with unique keys and sequence values 【发布时间】:2019-10-03 01:04:50 【问题描述】:

这是我的数据框,如下所示:

df = pd.DataFrame(
        'shipment_name':['A','A','A','A','A','B','B','B','B','B','B', 'C','C','C','C','C'],
        'city_name':[2,3,4,5,6,1,2,3,4,5,6,5,6,7,8,9],
        'volume':[46,46,46,46,46,50,50,50,50,50,50,55,55,55,55,55],
        'customer_name':['James','James','James','James','James','James','James','James','James','James','James','James','James','James','James','James']
    )

我想要一个代码,它可以给我一个带有以下值的答案: 城市 2-3 之间的总流量为 (46+50 = 96),城市 5-6 之间的总流量为 (46+50+55 = 151)。对于名为 James 的客户,他的货运量在 5 和 6 之间为 151,在 2 和 3 之间为 96。

我不明白如何编码。

我不明白如何编码。强文本

【问题讨论】:

我不太明白你在问什么。请创建一个minimal reproducible example 再次检查我的问题。我已经更新了 您通过包含图像链接使您的问题更少可读,并且您实际上并没有更改问题的内容。另请查看How to Ask。 您现在发现问题和数据正确了吗? 给我一点时间。我是这个地方的新手。我现在会正确更改它 【参考方案1】:

请使用SO tour 并阅读有关How to Ask 的信息。这些将帮助您更快地收集有用的回复。

IIUC,此代码应有助于您提出问题:

import pandas as pd
df = pd.DataFrame(
        'shipment_name':['A','A','A','A','A','B','B','B','B','B','B', 'C','C','C','C','C'],
        'city_name':[2,3,4,5,6,1,2,3,4,5,6,5,6,7,8,9],
        'volume':[46,46,46,46,46,50,50,50,50,50,50,55,55,55,55,55],
        'customer_name':['James','James','James','James','James','James','James','James','James','James','James','James','James','James','James','James']
    )
u = df.groupby(['city_name']).sum()

给你:

           volume
city_name        
1              50
2              96
3              96
4              96
5             151
6             151
7              55
8              55
9              55

然后您可以按照this answer 中的步骤创建组合。我在下面做了一些简单的组合:

u = pd.DataFrame(np.abs(np.subtract.outer(u.volume, u.volume)), u.city_name, u.city_name)
stacked = u.stack()
stacked = pd.DataFrame('cities': stacked.index.to_series(), 'diff': stacked)[['cities', 'diff']].reset_index(drop=True)

请阅读.groupby() 文档here。

【讨论】:

Module object Dataframe 是不可调用的,它说 您是否在代码开头调用import pandas as pd 我相信您看到的错误与您发布的错误不同。我建议在 *** 上搜索解决方案。如果没有任何帮助,那么我会发布一个单独的问题来尝试找到解决该问题的方法。 我会正确措辞并再次提问

以上是关于如何在具有唯一键和序列值的列中唯一求和的主要内容,如果未能解决你的问题,请参考以下文章

如何对具有相同 ID OpenOffice 的条目求和 - Calc

仅选择最多具有 N 个唯一值的列

计算唯一字段的列中的重复值

如何对具有多个值的多个列求和

如何在 DolphinDB 表的列中选择唯一元素?

获取bash中列中唯一值的计数