【发布时间】:2021-11-29 03:04:25
【问题描述】:
我试图在同一列 (accident_no) 的基础上合并 7 个不同的数据帧,但问题是某些数据帧包含更多行和 (accident_no) 的重复,例如
表 1(事故)包含 200 个事故_no(所有唯一),表 3 包含 196 个事故_no(所有唯一),但表 4(人员)包含 400 个事故_no(一些重复),因为可能有多名乘客参与了同一次撞车事故所以accident_no 是一样的,信息可以用于分析。
我面临的问题是我尝试过 concat、join、merge 但答案达到了最高行数,而且我得到的行数超过了 400。
到目前为止,我尝试了以下方法:
dfs = [df1,df2,df3,df5,df6,df7]
df_final = reduce(lambda left,right: pd.merge(left,right,on='ACCIDENT_NO', how = 'left'), dfs)
与
dfs = [df.set_index(['ACCIDENT_NO']) for df in [df1, df2, df3, df4, df5, df6, df7]]
print(pd.concat(dfs, axis=1).reset_index())
那么,我是否有可能获得超过 400 行的行数,或者我做错了什么?
谢谢
【问题讨论】:
-
您是否在所有数据框中捕获唯一的人?还是只适用于表 4?
标签: python dataframe merge concatenation