数据
DF1
ID stat
AA1 exzone
BB2 exzone5
CC4 limit5
字符串
DF2
name state
AA1 NY
AA1 NY
AA1 NY
AA1 NY
BB2 GA
BB2 GA
BB2 GA
CC4 CA
CC4 CA
型
所需
name stat state
AA1 exzone NY
BB2 exzone5 GA
CC4 limit5 CA
型
在做
out = pd.merge(df1,df2, left_on=['ID'], right_on= ['name'], how="left")
型
然而,上面的脚本给出分解输出,并且不保留原始的左 Dataframe 行计数。任何建议都很感激。
1条答案
按热度按时间fsi0uk1n1#
左合并并不意味着结构将与原始左DataFrame的结构相同。这意味着所有的左键都将被保留,即使在右DataFrame中没有。在本例中,右侧的重复键强制
merge
计算行的所有组合。您需要首先删除重复项:
字符串
如果出于某种原因,每个名称有几个不同的状态,则应该找到另一种聚合方法(选择第一个,最后一个,将唯一状态组合为单个字符串等),或者接受行重复。