You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python的Pandas实现类似Excel VLOOKUP的功能?

用Pandas实现类似Excel VLOOKUP的DataFrame填充方案

嘿,这事儿我熟!用Pandas实现你要的功能其实很简单,完全可以替代Excel里的VLOOKUP,我来一步步教你怎么做~

1. 准备工作:导入Pandas库

首先得确保你已经装了Pandas,如果没安装的话,先在终端跑这个命令:

pip install pandas

然后在代码里导入:

import pandas as pd

2. 读取你的CSV文件

把有数据的df1.csv和空结构的df2.csv读进Pandas的DataFrame:

df1 = pd.read_csv('df1.csv')
df2 = pd.read_csv('df2.csv')

3. 匹配数据并调整列顺序

因为你的df2是空结构,我们需要把df1的数据对齐到df2的列结构里,然后调整成你想要的列顺序:

# 用merge做右连接,既保留df1的所有数据,又对齐df2的列结构
df3 = pd.merge(df2, df1, on=['Time', 'EmployeeID', 'EmployeeName'], how='right')

# 调整列顺序为:EmployeeName → EmployeeID → Time
df3 = df3[['EmployeeName', 'EmployeeID', 'Time']]

4. 保存成最终的df3.csv

最后把处理好的数据导出成CSV文件,记得加上index=False避免生成多余的索引列:

df3.to_csv('df3.csv', index=False)

扩展:如果以后df2有数据怎么办?

要是之后df2里有了具体的EmployeeID(或者其他匹配字段),需要从df1里查找对应的数据(这才是真正对应Excel VLOOKUP的场景),比如df2里只有EmployeeID,要匹配姓名和时间,就可以这么写:

# 按EmployeeID做左连接,把df1里对应的数据匹配到df2中
df3 = pd.merge(df2, df1[['EmployeeID', 'EmployeeName', 'Time']], on='EmployeeID', how='left')

# 同样调整列顺序
df3 = df3[['EmployeeName', 'EmployeeID', 'Time']]
df3.to_csv('df3.csv', index=False)

这样就和你在Excel里用VLOOKUP实现的效果完全一样啦!

内容的提问来源于stack exchange,提问作者rafasalo

火山引擎 最新活动