在不断变化的Excel中获取产品的总和



我有一个包含太多值的Excel文件,只有两列是相关的,我将它们提取到一个新的数据框架中。所以我有两列,第一列是Product编号,第二列是productsum。问题是产品编号与生产的总和不一致。生成的和总是比对应的Product至少低1行,但有时不止一个值,可能有10行值属于一个Product。

我的想法是索引字符串的第一列(产品编号类似于A100 000),然后确定它位于何处以及下一个不匹配字符串位于何处。然后我有一个行范围或者只是一个数字,然后我可以像这样添加到函数中:

Product1 = (df.iloc[Product1:Product1+diff1, 1])
Product1 = Product1.sum(axis=0)

来定位和求和数字等。目标是有一个脚本,我可以把Excel注入每个月,并得到一个报告,有多少是什么生产。

我的问题是,如果这在Python中是可能的,我猜是可能的,以及我是如何完成的,我对Python和pandas很陌生。如有任何帮助,不胜感激

样本数据:

tbody> <<tr>
产品编号产量
A00 001
45
56
87
A00 005
5
A00 034
27
34

我将使用groupbysum。但是,由于您的数据框在Product Number列中包含空白,而在Produced Amount列中包含非数字,我将首先清除它:

tmp = df.assign(**{'Product Number': df['Product Number'].ffill(),
'Produced Amount': pd.to_numeric(df['Produced Amount'], 'coerce')})

:

Product Number  Produced Amount
0        A00 001                NaN
1        A00 001                NaN
2        A00 001               45.0
3        A00 001               56.0
4        A00 001               87.0
5        A00 005                NaN
6        A00 005                NaN
7        A00 005                5.0
8        A00 034                NaN
9        A00 034                NaN
10       A00 034               27.0
11       A00 034               34.0

现在是微不足道的:

tmp.groupby('Product Number').sum().astype('int').reset_index()

给出预期结果:

Product Number  Produced Amount
0       A00 001                188
1       A00 005                  5
2       A00 034                 61

相关内容

  • 没有找到相关文章

最新更新