Python 2个数据帧的条件语句
我在解决以下问题时遇到问题: 我在熊猫中有两个数据帧,第一个数据帧(df1)是关于我买了一整年的水果,下一个数据帧(df2)是关于水果的定价。现在的问题在于df1中的一些水果价格不正确。下面是一个例子:Python 2个数据帧的条件语句,python,pandas,numpy,dataframe,jupyter-notebook,Python,Pandas,Numpy,Dataframe,Jupyter Notebook,我在解决以下问题时遇到问题: 我在熊猫中有两个数据帧,第一个数据帧(df1)是关于我买了一整年的水果,下一个数据帧(df2)是关于水果的定价。现在的问题在于df1中的一些水果价格不正确。下面是一个例子: df1 = pd.DataFrame({'Fruits Bought Over a Year' : ['Apple', 'Apple', 'Apple', 'Apple', 'Orange', 'Watermelon',
df1 = pd.DataFrame({'Fruits Bought Over a Year' : ['Apple', 'Apple', 'Apple', 'Apple', 'Orange', 'Watermelon',
'Orange', 'Orange', 'Watermelon', 'Apple', 'Grapes',
'Watermelon', 'Grapes'],
'Price': [5, 5, 4, 4.5, 3, 7, 2.5, 2, 6, 4, 1, 6, 2]})
df2 = pd.DataFrame({'Fruits' : ['Apple', 'Orange', 'Watermelon', 'Grapes'],
'Fruits Price': [5, 3, 7, 2]})
我想做的是创建一个公式,可以评估(例如)如果df1中的苹果价格与df2中的价格不同,那么告诉我df2中的实际价格与df1中的错误价格之间的差异,并将其作为df1中的新列输入
示例:df1苹果成本为6,而df2中的实际价格苹果成本仅为5,现在差值为1,它将在df1中显示为一个名为“价格差异”的新列。您可以尝试以下解决方案以获得结果:
在第3步中,我们使用在第2步中创建的字典进行差异处理。您的示例数据不是数据帧的有效表示形式
df1
具有不同的长度值。@QuangHoang已更正。OP缺少一个逗号。
df2 = df2.set_index('Fruits')
di = df2.to_dict('index')
df1['price difference'] = df1.apply(lambda row: abs(df1['Price'][row.name] - di[df1['Fruits Bought Over a Year'][row.name]]['Fruits Price']), axis=1)