我有两个装入熊猫的数据框。每个数据框都包含由特定土地块唯一的“图钉”索引的财产信息。
第一个数据框(df1)代表历史销售数据。由于可以多次出售物业,因此索引值(“图钉”)会重复(即,每出售一项物业,都会有一行以地块的“图钉”作为索引号。如果该物业在1天内被出售了一次)在数据集中,索引/“图钉”是唯一的。如果卖出5次,则索引/“图钉”在数据集中将出现5次。
第二个数据帧(df2)是一个属性记录。再次使用唯一的宗地销对其进行索引,但是由于此数据帧是每个属性的记录,因此每个索引值的value_counts()为1(即索引值不重复)。
我想将数据添加到df1或创建一个新的数据框,该数据框将完整保留df1中的所有数据,但会根据匹配的索引值添加df2中的值。
例如:df1的列为['SALE_YEAR','SALE_VALUE']-其中可以包含具有相同索引值的多行。 df2具有列['Address','SQFT'],其中索引值在数据帧内都是唯一的。我想通过匹配索引值将“地址”和“ SQFT”数据点添加到df1。
Merge()和Concat()似乎不起作用。我相信这是因为语法难以处理/将df2值匹配到多个df1行。
视觉示例:
谢谢您的帮助。
答案 0 :(得分:0)
尝试一下:
import pandas as pd
merged_df = pd.merge(left=df1, right=df2, on='PIN', how='left')
如果仍然无法正常工作,则可能是PIN
列的数据类型不匹配。
df1['PIN'] = df1['PIN'].astype(int)
df2['PIN'] = df2['PIN'].astype(int)
merged_df = pd.merge(left=df1, right=df2, on='PIN', how='left')