在数值条件下合并或联接数据帧



我有两个数据帧,我想基于一列中的等价性和第二列中的数字差来连接它们。

例如:

d = {'col1': [A, B], 'col2': [30, 40]}
df = pd.DataFrame(data=d)
d1 = {'col1': [A, B], 'col2': [35, 400]}
df1 = pd.DataFrame(data=d1)

col1  col2
0     A     30
1     B     40
col1  col2
0     A     35
1     B     400

有没有一种方法可以合并col1中的等价性;col2<10〃;?

我所讨论的唯一解决方案包括在col1上进行一般合并,并根据col2中的差异创建一个过滤器。

由于问题中没有定义预期的输出形状,所以我根据给定的条件垂直连接了两个数据帧。

d1 = {'col1': ["A", "B"], 'col2': [30, 40]}
df1 = pd.DataFrame(data=d1)
d2 = {'col1': ["A", "B"], 'col2': [35, 400]}
df2 = pd.DataFrame(data=d2)
out=pd.concat([df1,df2],axis=1,ignore_index = True)
out = out.rename(columns = {0: "df1_col1",1: "df1_col2",2: "df2_col1",3: "df2_col2"})
out = out[abs(out["df1_col2"] - out["df2_col2"]) <10]
print(out)
df1_col1  df1_col2  df2_col1  df2_col2
0        A        30        A        35

最新更新