吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 654|回复: 5
收起左侧

[求助] 用python处理两个excel

[复制链接]
axllen 发表于 2024-3-21 17:24
第一个excel表格式如下

班级             |    得分
一年级         |    10
二年级         |    20
三年级二班  |   30


第二个excel表格式如下

班级
一年级一班
二年级二班
三年级

我想实现的是,把第一个表的得分填到第二个表。两个表的班级列,要么表1包含表2,要么表2包含表1,最终的结果是

班级               |    得分
一年级一班    |    10  
二年级二班    |     20
三年级           |     30


请问用pandas应该怎么实现,谢谢!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sai609 发表于 2024-3-21 17:30
merge合并函数
arrymarry 发表于 2024-3-21 17:37
[Python] 纯文本查看 复制代码
import pandas as pd

# 假设df1和df2是已经读入的两个DataFrame
# df1的结构: 班级 | 得分
# df2的结构: 班级

def standardize_class_name(class_name):
    # 根据您的规则来处理或调整班级名称
    # 例如,如果班级名称中不包含"一班"或"二班",则追加"一班"
    if "一班" not in class_name and "二班" not in class_name:
        class_name += "一班"
    return class_name

# 应用这个函数到df2的班级列上
df2['班级'] = df2['班级'].apply(standardize_class_name)

# 现在合并df1和df2,根据班级列
# 使用左合并保留df2的结构
result = pd.merge(df2, df1, on='班级', how='left')

# 显示最终结果
print(result)

# 如果需要输出到excel
# result.to_excel("output.xlsx", index=False)
lisongmei 发表于 2024-3-21 17:51
path_a=r"C:\Users\110\Desktop\a.xlsx"
path_b=r"C:\Users\110\Desktop\b.xlsx"
df_a=pd.read_excel(path_a)
df_b=pd.read_excel(path_b)
df_s=pd.merge(df_a,df_b,left_on=df_a['班级'].str[:3],right_on=df_b['班级'].str[:3],suffixes=("a","b"))
df_s.rename(columns ={"key_0":"班级"},inplace=True)
print(df_s)

    班级    班级a  得分a    班级b  得分b
0  一年级    一年级   10  一年级一班    1
1  二年级    二年级   20  二年级二班    2
2  三年级  三年级二班   30    三年级    3
[Finished in 1.7s]
Agri6789 发表于 2024-3-21 23:01
羡慕大神
 楼主| axllen 发表于 2024-3-22 10:55
谢谢两位大神的回复
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表