[英]Calculate difference of two columns from two different dataframes based on condition
[英]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.