python - 使用 Python:如果两个属性匹配(国家和日期),如何划分两个不同的指标(金额和汇率)?
问题描述
我从一个包含三列(表格截图)的经济学研究数据库下载并导入了一个 csv 文件:“国家代码”、“时间”、“指标”。基本上有两种类型的指标(1. 当地货币金额和 2. 欧元汇率)。如何在 Python 中创建一个新列“EUR_amount”,将金额除以汇率,以防两个项目的国家代码和月份相同,例如,欧元 = 国家和时间匹配的金额/汇率?
任何帮助都非常感谢!(请记住,我是 python 的菜鸟,这是我关于 stackoverflow 的第一个问题。)提前非常感谢。
编辑:在收到mozway的反馈后添加此代码(谢谢):
import pandas as pd
df = pd.DataFrame({'country_code':['EU','UK','US','EU','UK','US','EU','UK','US','EU','UK','US','EU','UK','US','EU','UK','US'],
'date':['2019-03','2019-03','2019-03','2019-04','2019-04','2019-04','2019-05','2019-05','2019-05','2019-03','2019-03','2019-03','2019-04','2019-04','2019-04','2019-05','2019-05','2019-05'],
'item':['exposure','exposure','exposure','exposure','exposure','exposure','exposure','exposure','exposure','FX-rate','FX-rate','FX-rate','FX-rate','FX-rate','FX-rate','FX-rate','FX-rate','FX-rate'],
'value':[15000,9000,13000,16500,8750,17000,17000,7999,25000,1.00,1.25,0.90,1,1.23,0.93,1.00,1.24,0.95]})
print(df)
所以,重申一下我的问题:在 country_code 和 date 匹配的情况下,如何将项目曝光与项目 FX-rate 分开?
解决方案
您可以首先将数据帧分成两部分 - 曝光和外汇汇率
fx = df[df["item"]=="FX-rate"]
exp = df[df["item"]!="FX-rate"]
之后,您可以使用
merged_df = pd.merge(fx,exp,on=["country_code","date"],how='outer')
有关其他参数和示例,请参阅https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html。
以上将导致
国家代码 | 日期 | item_x | 值_x | item_y | value_y |
---|---|---|---|---|---|
欧洲联盟 | 2019-03 | 汇率 | 1.00 | 接触 | 15000.0 |
英国 | 2019-03 | 汇率 | 1.25 | 接触 | 9000.0 |
我们 | 2019-03 | 汇率 | 0.90 | 接触 | 13000.0 |
欧洲联盟 | 2019-04 | 汇率 | 1.00 | 接触 | 16500.0 |
英国 | 2019-04 | 汇率 | 1.23 | 接触 | 8750.0 |
我们 | 2019-04 | 汇率 | 0.93 | 接触 | 17000.0 |
欧洲联盟 | 2019-05 | 汇率 | 1.00 | 接触 | 17000.0 |
英国 | 2019-05 | 汇率 | 1.24 | 接触 | 7999.0 |
我们 | 2019-05 | 汇率 | 0.95 | 接触 | 25000.0 |
接下来只是分工的问题
merged_df["Convert"] = merged_df["value_y"]/merged_df["value_x"]
推荐阅读
- r - lapply,数据争吵日期,意外输出
- jenkins - 访问先前 Jenkins 构建中哪个阶段失败
- ruby-on-rails - Rails index.html.erb 删除项目 - 不工作
- regex - Oracle SQL:提取每行中的所有匹配字符串
- asp.net - 访问嵌套 UpdatePanel 内的模型绑定项
- linux - Raspbian 启动时自动运行命令
- algorithm - 寻找最长路径网格
- reactjs - 处理 ag grid react 并渲染复选框网格
- google-cloud-datastore - Most efficient way to delete thousands of entities in datastore
- postgresql - Postgresql如何在事务中使用多个存储过程