pandas读取原来的Excel数据,并根据字典做一个映射,然后重新写入Excel

参考

pandas写入覆盖 原来的Excel

改之前
在这里插入图片描述

建立字典键值对映射 改完之后
映射规则

d = {1 :7 , 2 :6 , 3 : 3,4:1 ,5:2 ,6:8 ,7: 4,8: 5,9:11 ,10:9 ,11:10  }

在这里插入图片描述
完整代码:

# -*- coding:utf-8 -*-


import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
df1=pd.read_excel('讯飞—刘老师.xlsx',usecols=[1])                  #通过指定列索引号导入第0列
print(type(df1))
#遍历DataFrame表格数据的每一列
for col in df1.columns:
    series = df1[col]
    # 可以看到返回的是series对象
    #print(series)
print(type(series))
#根据字典做一个映射
d = {1 :7 , 2 :6 , 3 : 3,4:1 ,5:2 ,6:8 ,7: 4,8: 5,9:11 ,10:9 ,11:10  }
new_list=[]
#根据传入的val值返回字典对应的key,这一步完成了映射
def return_key(val):
    for key, value in d.items():
        if value==val:
            return key
#遍历series的值,把值对应的key添加到新的列表中,得到了映射后的列表。
for value in series.values:
    temp=return_key(value)
    #print(temp)
    new_list.append(temp)
#得到映射后的列表赋值给df对象,便于后面的to_excel方法写入
df1.iloc[:,0]=new_list

#测试是否成功修改
for col in df1.columns:
    s = df1[col]
    # 可以看到返回的是series对象
    print(s)
    #可以看到已完成根据字典的映射,那么最后一步  写入即可
df1.to_excel('讯飞—刘老师.xlsx', sheet_name="sheet1", index=False)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-教育技术博主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值