【pandas】根据其他表格列数据更新相应的列字段,apply()操作实例

今天在学习中,遇到一个小问题,需要把主表中的出行网格id,和终点网格id替换成对应的枢纽地点,从表中有每个枢纽对应的id(一个枢纽对应多个网格id)

1.原始数据如下图

在这里插入图片描述上面是枢纽id,下方是出行信息

2.将数据导入python的pandas进行分析

下面是主要的代码展示
import pandas as pd
df = pd.read_csv('./ZJJmove_month_0501.csv')  #导入出行信息
df1 = pd.read_excel('./station_name_1.xlsx')  #导入枢纽
test = dict(zip(df1['grid_id'],df1['grid_id_name']))
#把df1中的grid_id和grid_id_name这俩列数据取出,然后拼接成一个字典test中进行存放
def f1(a):      # 用做去重的函数,通过输入查询的id编号,返回对应站点名称,若没有对应的返回0
    global test
    if a in df1['grid_id'].tolist():
        return test[a]
    else:           
        return 0

df['start_grid_id'] = df['start_grid_id'].apply(f1)     #使用apply方法,将一列的所有数据依次取出
df['end_grid_id'] = df['end_grid_id'].apply(f1)         #并使用上文的函数进行计算
df.to_csv('./_clearmove_month_0501.csv',index=False)

主要使用的方法pandas库自带的apply,可以根据自己需要编写apply中的函数功能,简单的函数可以直接用lambda

3.最后得到的结果

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值