簡體   English   中英

根據另一列條目計算兩行的差異

[英]Calculate difference of two rows based on another columns entries

我有這樣的數據框:

A列 B列
2.5
ab 1個
0
2個
ab 0.5
0
紫外線 1個
2個
ab 1個

我需要兩個計算“zu”和“ab”之間的差異並將其放置在新列上

A列 B列 差異
2.5 1.5
ab 1個 0
0 0
2個 1.5
ab 0.5 0
0 0
紫外線 1個 0
2個 1個
ab 1個 0

我嘗試了 diff() 和 shift() Funktion,但沒有用。 你有什么建議嗎?

示例代碼

data = {'Column A': {0: 'zu', 1: 'ab', 2: 'fi', 3: 'zu', 4: 'ab', 5: 'fi', 6: 'uv', 7: 'zu', 8: 'ab'},
        'Column B': {0: 2.5, 1: 1.0, 2: 0.0, 3: 2.0, 4: 0.5, 5: 0.0, 6: 1.0, 7: 2.0, 8: 1.0}}
df = pd.DataFrame(data)

代碼

s = df['Column B'].diff(-1).where(df['Column A'].eq('zu'), 0)

s

0    1.5
1    0.0
2    0.0
3    1.5
4    0.0
5    0.0
6    0.0
7    1.0
8    0.0

s設為 diff 列

df.assign(diff=s)

output

 Column A   Column B    diff
0   zu      2.5         1.5
1   ab      1.0         0.0
2   fi      0.0         0.0
3   zu      2.0         1.5
4   ab      0.5         0.0
5   fi      0.0         0.0
6   uv      1.0         0.0
7   zu      2.0         1.0
8   ab      1.0         0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM