Pandas 合并数据帧并避免重复列名_x 和 _y
在使用 Pandas 合并数据帧时,如果两个数据帧中存在相同的列名,合并后的数据帧会自动在重复列名后面加上 _x 和 _y 后缀来区分。例如:
# 假设 data 是一个 DataFrame
group_minA = data.groupby(['TrainIndex', 'Via_Seq'])['Arrive_TmS'].min().reset_index().rename(columns={'Arrive_TmS': 'FirstSArrive_TmS', 'Via_Seq': 'seq_min'})
group_minD = data.groupby(['TrainIndex', 'Via_Seq'])['Deptr_TmS'].min().reset_index().rename(columns={'Deptr_TmS': 'FirstSDeptr_TmS', 'Via_Seq': 'seq_min'})
group_maxA = data.groupby(['TrainIndex', 'Via_Seq'])['Arrive_TmS'].max().reset_index().rename(columns={'Arrive_TmS': 'LastSArrive_TmS', 'Via_Seq': 'seq_max'})
group_maxD = data.groupby(['TrainIndex', 'Via_Seq'])['Deptr_TmS'].max().reset_index().rename(columns={'Deptr_TmS': 'LastSDeptr_TmS', 'Via_Seq': 'seq_max'})
data = data.merge(group_minA, on=['TrainIndex', 'seq_min'], how='left')
data = data.merge(group_minD, on=['TrainIndex', 'seq_min'], how='left')
合并后 data 会出现 _x 和 _y 后缀。
可以使用参数 suffixes 来指定合并后重复列名的后缀,例如:
data = data.merge(group_minA, on=['TrainIndex', 'seq_min'], how='left', suffixes=('_minA', '_minD'))
data = data.merge(group_minD, on=['TrainIndex', 'seq_min'], how='left', suffixes=('_minD', '_minA'))
这样就可以避免出现重复列名 _x 和 _y 了。
原文地址: https://www.cveoy.top/t/topic/nBep 著作权归作者所有。请勿转载和采集!