gpt4 book ai didi

python - Pandas 根据两个数据框计算百分比

转载 作者:行者123 更新时间:2023-12-01 09:30:53 25 4
gpt4 key购买 nike

我有两个数据框:

A   B   C   D           
X Y 1.0 49.453125
2.0 67.767857
3.0 48.770833
4.0 43.583333


A E F G C H
X Z 1.0 807 1.0 34.375000
2.0 808 1.0 35.375000
1.0 909 2.0 1.750000
2.0 910 2.0 48.750000

现在,如果两个数据框的 C 列相同,我想计算数据框 2 中 H 列与数据框 1 D 列对应值的相对百分比:

34.375000 * 100 / 49.453125 = 69.51
35.375000 * 100 / 49.453125 = 71.53
1.750000 * 100 / 67.767857 = 2.58
48.750000 * 100 / 67.767857 = 71.94

我怎样才能实现这个目标?

最佳答案

使用map如果 df2['C'] 的所有值都存在于 df1['C'] 中,然后乘以 mul除以 div :

mapping = df1.set_index('C')['D']
s = df2['H'].mul(100).div(df2['C'].map(mapping))
print (s)
0 69.510269
1 71.532385
2 2.582345
3 71.936759
dtype: float64

另一个解决方案是使用merge带有新 DataFrame 的内部联接:

df = df1.merge(df2, on='C')
s = df['H'].mul(100).div(df['D'])
print (s)
0 69.510269
1 71.532385
2 2.582345
3 71.936759
dtype: float64

关于python - Pandas 根据两个数据框计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49974905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com