今天在学习中,遇到一个小问题,需要把主表中的出行网格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