如何在具有唯一键和序列值的列中唯一求和
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
?
我相信您看到的错误与您发布的错误不同。我建议在 *** 上搜索解决方案。如果没有任何帮助,那么我会发布一个单独的问题来尝试找到解决该问题的方法。
我会正确措辞并再次提问以上是关于如何在具有唯一键和序列值的列中唯一求和的主要内容,如果未能解决你的问题,请参考以下文章