用python把Excel表中不同货币的资金换算成人民币

Excel里可能有货币换算的工具,但是我需要处理的是像下面这样的带数字带文字的表格,所以需要通过python来进行批量处理
在这里插入图片描述
代码如下,用UTF-8读取中文文件的csv可能会出现很多编码错误,解决办法可以看我这篇文章:解决:python打开csv文件时总是因为编码问题报错

import imp
import string
import pandas as pd
import numpy as np
from string import digits
import re
df=pd.read_csv(r'PathToxxx.csv',encoding="utf-8")

print(df.info)

# 看有多少种类的货币
currency_set=set()
for i in df["注册资本"]:
    currency_set.add(re.sub(r'[0-9]+','',i))

# 一共有9种货币
for i in currency_set:
    print(i)

# 汇率换算
# 万元人民币:1
# 万日元:0.055
# 万美元:6.328
# 万英镑:8.599
# 万澳大利亚元:4.575
# 万欧元:7.160
# 万瑞士法郎:6.874
# 万港元:0.811
# 万德国马克:4.7(2015的数据)
def transfer(money:string):
    m=""
    if "万元人民币" in money:
        m=money.replace("万元人民币","")
        m=float(m)
    elif "万日元" in money:
        m=money.replace("万日元","")
        m=float(m)*0.055
    elif "万美元" in money:
        m=money.replace("万美元","")
        m=float(m)*6.328
    elif "万英镑" in money:
        m=money.replace("万英镑","")
        m=float(m)*8.599
    elif "万澳大利亚元" in money:
        m=money.replace("万澳大利亚元","")
        m=float(m)*4.575
    elif "万欧元" in money:
        m=money.replace("万欧元","")
        m=float(m)*7.160
    elif "万瑞士法郎" in money:
        m=money.replace("万瑞士法郎","")
        m=float(m)*6.874
    elif "万港元" in money:
        m=money.replace("万港元","")
        m=float(m)*0.811
    elif "万德国马克" in money:
        m=money.replace("万德国马克","")
        m=float(m)*4.7 
    
    return m    
        
# 开始换算
df["注册资本"]=df["注册资本"].map(lambda x:transfer(x))

df.to_csv("PathToxxx.csv",encoding="utf-8")


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值