为了账号安全,请及时绑定邮箱和手机立即绑定

python熊猫多列总和

python熊猫多列总和

斯蒂芬大帝 2021-06-03 10:17:05
需要一些建议:我正在尝试将 SERIAL COUNT 字段与同一项目编号的 GROUP 中的 SERIAL NUMBERS 总数求和?欢迎任何建议? fincon_serials = pd.read_csv('Raw Data/LISTSNO Calvinia.TXT',skiprows = 1) fincon_codes = pd.read_excel('Raw Data/STKCOUNT Calvinia.xls', index=None) fincon_codes = fincon_codes.drop(columns=['GROUP','BIN','Unnamed: 5']) fincon_codes = pd.merge(fincon_codes, fincon_serials[['ITEM NUMBER', 'SERIAL NUMBER']], on = ['ITEM NUMBER']) fincon_codes['SERIAL COUNT'] = 1 fincon_codes = fincon_codes.groupby(['ITEM NUMBER','CAT','DESCRIPTION','NORMAL','FAULTY','SUPPLR','SWP-OUT','TOTAL','COST','VALUE','SERIAL NUMBER'])[['SERIAL COUNT']].sum() fincon_codes.head()这是我的第一个问题,如果格式不正确,请接受我的道歉。我已经在 PANDAS 文档中搜索了解决方案,但找不到适合我想要做的解决方案,因为 SERIAL COUNT 列应该计算 THE SERIAL NUMBER 列中的 SERIALS 并将其添加到 SERIAL COUNT。电流输出:需要的是 SERIAL COUNT 应该有每个项目编号组的总数。
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

我创建了一些数据,例如:


item_number = pd.Series([1,2,2,1,1,3])

serial_number = pd.Series([112, 111, 111, 134, 155, 111])

another_column = pd.Series([1,2,3,4,5,6])

df = pd.concat([item_number, serial_number, another_column], 1)

df.columns = ['item_number', 'serial_number', 'another_column']

在您的数据中,“另一列”是任何另一列,如“CAT”、“DESCROPTION”等。如果您需要计算“项目编号”中唯一值“序列号”的计数,我认为您可以使用groupby(['item_number', 'serial_number']).


result = df.groupby(['item_number', 'serial_number']).another_column.count()

你将有这样的输出:


item_number  serial_number

1            112              1

             134              1

             155              1

2            111              2

3            111              1

您是否需要将其与其他列连接?如果您可以提供一个和平的数据,那么我可以编写完整的示例。


查看完整回答
反对 回复 2021-06-06
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号