pandas 对两个 Dataframe 中的行求和

v09wglhw  于 2022-12-21  发布在  其他
关注(0)|答案(1)|浏览(265)

我有两个 Dataframe 。一个有1-5个月和每个月的值,它们对于任何ID都是相同的,另一个有ID和唯一乘数,例如:

data = [['m', 10], ['a', 15], ['c', 14]]
 
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['ID', 'Unique'])

data2=[[1,0.2],[2,0.3],[3,0.01],[4,0.5],[5,0.04]]
df2 = pd.DataFrame(data2, columns=['Month', 'Value'])

我想做sum(value /(1+unique)^(Month/12))。例如,对于ID m,我想对df 2中的每一行做(value/(1+10)^(Month/12)),并对它们求和。我写了一个for循环来做这件事,但由于我的真实的表有277,000个条目,这花费了太长的时间!

df['baseTotal']=0
for i in df.index.unique():
    for i in df2.Month.unique():
        df['base']= df2['Value']/pow(1+df.loc[i,'Unique'],df2['Month']/12.0)
        df['baseTotal']=df['baseTotal']+df['base']

有没有更有效的方法来做到这一点?

wgx48brx

wgx48brx1#

df['Unique'].apply(lambda x: (df2['Value']/((1+x) ** (df2['Month']/12))).sum())

0    0.609983
1    0.563753
2    0.571392
Name: Unique, dtype: float64

相关问题