假设我有两个数据帧,都共享列“shoe”、“size”和“color”。较小的数据框包含每个鞋款,并有一列“price”。更大的数据框包含所有售出的鞋子,但不包含价格(我知道这不合理,但我只是想解释我的问题)
我想找到一种方法,在较大的数据框中为鞋类价格编译一个新的列,它将从较小的数据框中为3个共享列“shoe”、“size”和“color”中的每一个匹配获取鞋类价格。你知道吗
我尝试过由于大小不同而不起作用的合并,我尝试过使用for循环,但老实说,我还是个初学者。你知道吗
有人能给我指出正确的方向吗?你知道吗
下面是一些用随机数据生成数据帧的代码:
def Rand(start, end, num):
res = []
for j in range(num):
res.append(random.randint(start, end))
return res
df1 = pd.DataFrame({"shoe":range(10),
"size":range(1,11),"color":range(2,12),
'price':range(100,110)})
df2 = pd.DataFrame({"shoe": Rand(1, 10, 100),
"size": Rand(1, 11, 100), "color": Rand(1, 11, 100)})
给定上述数据帧,我试图在df2中创建一个“price”列,它通过将df2的列与df1中相应列中的匹配值进行匹配来找到
也许你需要这个:
在本例中,您将得到新的dataframe,它合并匹配的三列。 你可以在这里阅读更多https://pandas.pydata.org/pandas-docs/stable/merging.html
相关问题 更多 >
编程相关推荐