我有两个要合并的DataFrame,但是我更希望检查两个df中是否存在一列,每行中的值是否完全相同。
对于基因融合,我在您看到形状的注释中尝试了几种解决方案
df = pd.concat([df_b, df_c], axis=1, join='inner') # (245131, 40)
df = pd.concat([df_b, df_c], axis=1).reindex(df_b.index) # (245131, 40)
df = pd.merge(df_b, df_c, on=['client_id'], how='inner') # (420707, 39)
df = pd.concat([df_b, df_c], axis=1) # (245131, 40)
原始df_c是(245131, 14)
,而df_b是(245131, 26)
据此,我假定client_id列具有确切的值,因为在三种方法中,我的形状为245131行。
df.rename(columns={ df.columns[20]: "client_id_1" }, inplace=True)
,但将其重命名为两列我尝试过
df_test = df_c.client_id
df_test.append(df_b.client_id, ignore_index=True)
但是我只收到一个索引和一个client_id列,但形状显示为245131行。
是否有mangle_dupe_cols命令用于合并或比较,例如read_csv?
答案 0 :(得分:0)
克里斯,如果您希望检查2个单独的数据帧的2列是否完全相同,则可以尝试以下操作:
tuple(df1['col'].values) == tuple(df2['col'].values)
这应该返回布尔值
如果要合并2个数据框,请确保感兴趣的列的所有行都具有唯一值,因为重复将导致添加行
如果要沿轴连接数据框,请使用concat