所以我有一個 Excel 檔案,包含許多值的方法,只有兩列是相關的,我將它們提取到一個新的資料框中。所以我有兩列,第一列是產品編號,第二列是生產總和。問題是產品編號與生成的總和不一致。Produced 總和始終比相應的 Product 低至少 1 行,但有時值不止一個,并且可能有 10 行值屬于 1 個 Product。
我的想法是為字串索引第一列(產品編號類似于 A100 000),然后確定它所在的位置以及下一個不匹配的字串所在的位置。然后我有一系列行或只是一個數字,然后我可以將其添加到這樣的函式中:
Product1 = (df.iloc[Product1:Product1 diff1, 1])
Product1 = Product1.sum(axis=0)
定位和總結數字等。目標是有一個腳本,我可以在其中每個月將 excel 注入到其中,并獲得一份報告,其中產生了多少。
我的問題是這是否可以用 python 實作,我猜是的,以及我是如何做到這一點的,我對 python 和 Pandas 很陌生。任何幫助深表感謝
樣本資料:
| 產品編號 | 生產量 |
|---|---|
| A00 001 | |
| 45 | |
| 56 | |
| 87 | |
| A00 005 | 排 |
| 5 | |
| A00 034 | |
| 27 | |
| 34 |
我想要的輸出:
| 產品編號 | 生產量 |
|---|---|
| A00 001 | 188 |
| A00 005 | 5 |
| A00 034 | 61 |
uj5u.com熱心網友回復:
我會使用groupby和sum。但是由于您的資料框在Product Number列中包含空格,在列中包含非數字Produced Ammount,我會先清理它:
tmp = df.assign(**{'Product Number': df['Product Number'].ffill(),
'Produced Ammount': pd.to_numeric(df['Produced Ammount'], 'coerce')})
要得到:
Product Number Produced Ammount
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 Ammount
0 A00 001 188
1 A00 005 5
2 A00 034 61
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/341091.html
