Pandas -匹配两个df中的列并返回另一列的值

1l5u6lss  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(273)

我有一个来自银行的事务处理的csv,以及我创建的另一个csv,其中我对最频繁发生的事务处理进行了分类。我希望通过匹配两个数据框架之间的说明来使用类别对银行csv进行分类。并非所有的都将被分类/都有匹配项。
df 1 ~2.5k行:

Description, Amount    
Corner Store, 30
Cinema, 10
Trampoline Store, 20

df 2 ~100行:

Description, Category
Corner Store, Groceries
Cinema, Recreation
The Pub, Alcohol

想要的结果:

Description, Amount, Category
Corner Store, 30, Groceries
Cinema, 10, Recreation
Trampoline Store, 20,

我已经尝试过了,但只是得到了一个类别列与'nan'在我的df:

df1['Category'] = df1['Description'].map(df2.set_index('Description')['Category'])
ykejflvf

ykejflvf1#

您可以使用Pandas的join,但需要将'Descritpion'设置为索引:

import pandas as pd

data1 = {'Description':['Corner Store','Cinema','Trampoline Store'],
         'Amount':[30,10,20]}
df1 = pd.DataFrame(data1)

data2 = {'Description':['Corner Store','Cinema', 'The Pub'],
         'Category':['Groceries','Recreation','Alcohol']}
df2 = pd.DataFrame(data2)

df1.set_index('Description',inplace=True)
df2.set_index('Description',inplace=True)

df3 = df1.join(df2)
print(df3)

输出:

Amount    Category
Description                         
Corner Store          30   Groceries
Cinema                10  Recreation
Trampoline Store      20         NaN

相关问题