仅连接来自不同数据框的两列
join only two columns from different data frames
我有一个如下所示的数据框:
id sku status
1. jd NULL
2. io. DONE
dataframe2:
id sku title role
6 jd Apple manager
3. xz. Null employee
我想在“SKU”列中加入这两个,这样我就会得到一个新的 df,如下所示:
id sku status title
1. jd NULL. Apple
2. io. DONE. NULL
因此,如果第一个数据帧中的 SKU 与第二个 df 中的 sku 值匹配,它应该给出其标题值。如果第一个数据框中的 sku 值不存在于第二个数据框中,则标题应该为 NULL。我怎样才能做到这一点?外部连接似乎不起作用。
df = pd.merge(dfFirst,dfSecond[['sku','title']],how='outer', on='sku')
df.head()
您可以使用 左连接,而不是使用 外连接,如下所示:
df = pd.merge(dfFirst,dfSecond[['sku','title']],how='left', on='sku')
左连接 仅使用来自左框架的键,类似于 SQL 左外连接;保留键顺序。因此,它会给你想要的布局。
结果:
注:NULL
经过Pandas处理后会被解释为NaN
。
print(df)
id sku status title
0 1 jd NaN Apple
1 2 io. DONE NaN
我有一个如下所示的数据框:
id sku status
1. jd NULL
2. io. DONE
dataframe2:
id sku title role
6 jd Apple manager
3. xz. Null employee
我想在“SKU”列中加入这两个,这样我就会得到一个新的 df,如下所示:
id sku status title
1. jd NULL. Apple
2. io. DONE. NULL
因此,如果第一个数据帧中的 SKU 与第二个 df 中的 sku 值匹配,它应该给出其标题值。如果第一个数据框中的 sku 值不存在于第二个数据框中,则标题应该为 NULL。我怎样才能做到这一点?外部连接似乎不起作用。
df = pd.merge(dfFirst,dfSecond[['sku','title']],how='outer', on='sku')
df.head()
您可以使用 左连接,而不是使用 外连接,如下所示:
df = pd.merge(dfFirst,dfSecond[['sku','title']],how='left', on='sku')
左连接 仅使用来自左框架的键,类似于 SQL 左外连接;保留键顺序。因此,它会给你想要的布局。
结果:
注:NULL
经过Pandas处理后会被解释为NaN
。
print(df)
id sku status title
0 1 jd NaN Apple
1 2 io. DONE NaN