gpt4 book ai didi

python - 替代方法而不是遍历行来获取平均值列表

转载 作者:行者123 更新时间:2023-12-02 15:50:31 26 4
gpt4 key购买 nike

我有如下两个数据框:-

data ={'a':[1,2,3,4,5,6,7],'b':[2,5,3,6,1,7,4]}
df = pd.DataFrame(data)
df
a b
0 1 2
1 2 5
2 3 3
3 4 6
4 5 1
5 6 7
6 7 4
data ={'a':[4,2,1,7,3,6,5],'c':[12,15,13,60,100,700,400]}
df1 = pd.DataFrame(data)
df1
a c
0 4 12
1 2 15
2 1 13
3 7 60
4 3 100
5 6 700
6 5 400

现在我想要一个使用上述两个数据框的值列表。基本上,我想搜索 df1 中的 df 行值并获取相应的值( df1 的列 c ) 并通过取两个数字的平均值将它们附加到列表中。

但是,我能够做到,但是当我遍历行时​​需要时间。有没有更好的方法可以更快地获得解决方案?

代码:

final=[]
for index, row in edges.iterrows():
for inde2x, row2 in df1.iterrows():
if np.isin(row['a'],row2['a']) == True:
r1 = row2['c']
if np.isin(row['b'],row2['a']) == True:
r2 = row2['c']
final.apped(r1+r2)
print(final)

异常输出:

[28, 415, 200, 712, 413, 760, 72]

最佳答案

一种方法是堆叠 df 的值,使用 df1 中的 a 列映射它:

out = df.stack().map(df1.set_index('a')['c']).groupby(level=0).sum()

输出:

0     28
1 415
2 200
3 712
4 413
5 760
6 72
dtype: int64

如果你需要一个列表,你可以做out.tolist()

关于python - 替代方法而不是遍历行来获取平均值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72621465/

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