:D 我有一個這樣的資料框,每 5 分鐘就會在其中添加分類資訊。索引是相同的日期(ìndex_date),分類資料是列Fruits。該列Number計算每 5 分鐘Diff_number收到的每種水果的數量,總是增加它們的價值,并且該列是與最后傳入的分類資料的差異。colDiff_number由以下材料制成:
df['Diff_number'] = df.groupby(['Fruit'])['Number'].diff().fillna(0)
| 索引日期 | 水果 | 數字 | diff_number |
|---|---|---|---|
| 16:10:16.000 | 蘋果 | 1 | 0 |
| 16:10:16.000 | 葡萄 | 3 | 0 |
| 16:10:16.000 | 橘子 | 4 | 0 |
| 16:15:16.000 | 蘋果 | 5 | 4 |
| 16:15:16.000 | 葡萄 | 8 | 5 |
| 16:15:16.000 | 橘子 | 10 | 6 |
| 16:20:16.000 | 蘋果 | 10 | 5 |
| 16:20:16.000 | 葡萄 | 8 | 0 |
| 16:20:16.000 | 橘子 | 1 | -9 |
例如。在16:10:16.000它得到 1 個差異為 0 的蘋果,5 分鐘后它總共得到 5 個差異為 4 的蘋果。這里一切都很好,但我的問題是:
有什么辦法可以消除 -9 并始終采用列中的數字Number?
我期望的是:
| 索引日期 | 水果 | 數字 | diff_number |
|---|---|---|---|
| 16:10:16.000 | 蘋果 | 1 | 0 |
| 16:10:16.000 | 葡萄 | 3 | 0 |
| 16:10:16.000 | 橘子 | 4 | 0 |
| 16:15:16.000 | 蘋果 | 5 | 4 |
| 16:15:16.000 | 葡萄 | 8 | 5 |
| 16:15:16.000 | 橘子 | 10 | 6 |
| 16:20:16.000 | 蘋果 | 10 | 5 |
| 16:20:16.000 | 葡萄 | 8 | 0 |
| 16:20:16.000 | 橘子 | 1 | 1 |
當 colNumber由于某種原因停止遞增計數時,Diff_numbercolNumber僅在該行中取值。
實作 我試圖這樣做:
if df.iloc[index]['Diff_number'] < 0:
df.iloc[index]["Diff_numver"] = df.iloc[index]["Number"]
但它不起作用:c
uj5u.com熱心網友回復:
您可以執行以下操作:
if df.iloc[row]['Diff_number'] < 0:
df.at[row, 'Diff_number'] = df.iloc[row]['Number']
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409472.html
標籤:
上一篇:根據新列值合并兩個資料框
