日期框1
df = pd.DataFrame(SQL_Query, columns=[ X,Y . . . . Currency,Amount]
Index X Y ... Currency Amount
0 74 1 ... USD 100
1 75 1 ... EUR 5000
2 76 1 ... AUD 300
3 79 1 ... EUR 750
[1411137 rows x 162 columns]
大型 SQL 查询,因此我避免写出所有列。
df1=pd.read_excel(r`FX_EUR.xlsx)
Index Currency FX
0 AUD 1.61350
1 BGN 1.95580
2 BRL 4.51450
3 CAD 1.45830
4 CHF 1.09280
所以我想要实现的是在 DF1 中进行查找以查看使用哪种货币,然后将“DF1 金额”列与“DF2 FX”列分开,并针对 DF1 中的所有行进行划分。通过创建第三个 DF3 或创建一个名为 Amount_EUR 的新列 i DF1。
关于如何编写这段代码有什么想法吗?
最佳答案
您可以使用合并来构建一个包含正确FX
(相同货币
)且索引与df
相同的系列。那么除法就很简单了:
fx = df.merge(df1, 'left', on='Currency')['FX']
df.loc[~ fx.isna(),'EUR_Amount'] = df.loc[~ fx.isna()]['Amount']/fx.loc[~ fx.isna()]
根据您的示例数据,它给出:
X Y ... Currency Amount EUR_Amount
Index
0 74 1 ... USD 100 NaN
1 75 1 ... EUR 5000 NaN
2 76 1 ... AUD 300 185.931205
3 79 1 ... EUR 750 NaN
关于Python pandas - 根据dataframe1中的另一列将dataframe1中的列与dataframe2中的列分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60317953/