多列上的csvjoin

2024-07-03 06:52:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下csv文件,我想Inner Join

CSV 1:行程_数据.csv(250 MB)

head -2 rand_trip_data_1.csv 

medallion,hack_license,vendor_id,rate_code,store_and_fwd_flag,pickup_datetime,dropoff_datetime,passenger_count,trip_time_in_secs,trip_distance,pickup_longitude,pickup_latitude,dropoff_longitude,dropoff_latitude
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,1,N,2013-01-07 23:54:15,2013-01-07 23:58:20,2,244,.70,-73.974602,40.759945,-73.984734,40.759388

CSV 2:旅行费(1.70GB)

^{pr2}$

我想合并以下列中的两个CSV文件:medallionhack_licensepickup_datetime。在

我使用的是csvjoin,但它只允许我从每个csv文件中加入一列。有没有办法,我可以在连接条件中添加更多列。在

仅使用csvjoinmedallion上联接的查询:

csvjoin -c medallion rand_trip_data_1.csv trip_fare_1.csv > trip_data_1.csv

bash中查询(但它不起作用)

join -t , -1 1,2,6 -2 1,2,4 rand_trip_data_1.csv trip_fare_1.csv > trip_data_1.csv
join: illegal field number -- 1,2,6

我也愿意接受其他bash/python建议。谢谢!在


Tags: 文件csvdatadatetimelicensedropoffhacktrip
1条回答
网友
1楼 · 发布于 2024-07-03 06:52:06

我用pandas来解决我的问题。在

import pandas as pd

data = pd.read_csv("test_rand.csv")
fare = pd.read_csv("test_fare.csv")

merged = pd.merge(data, fare, how='left', on=['medallion', 'hack_license', 'pickup_datetime'])
merged.to_csv("merged.csv", index=False)

相关问题 更多 >