pandas 匹配具有不同结构的数据集中的值

noj0wjuj  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(108)

我需要通过一个共享键将数据集A中的值添加到数据集B中。但是,数据集的组织方式并不相同。数据集A有多个具有相同键(名称)的入口,而数据集B是标识(不要问他们为什么使用ID作为单独的数据集):

dataset_A = {'Name' : ["John Snow", "John Snow", "Patchface", "Patchface"],
             'Score' : [1, 2, 8, 10]}

dataset_B = {'Name' : ['John Snow', 'Patchface'],
             'ID:' : [1001, 1002]}

pd.DataFrame(dataset_A)
pd.DataFrame(dataset_B)

我需要将['ID']添加到Pandas中数据集A的每个匹配'Name'中。
有什么帮助吗?

szqfcxe2

szqfcxe21#

步骤1 Dataframe 创建:可以使用以下代码创建两个数据集的 Dataframe :

import pandas as pd

# elements of first dataset
first_Set = {'Prod_1': ['Laptop', 'Mobile Phone',
                    'Desktop', 'LED'],
        'Price_1': [25000, 8000, 20000, 35000]
        }

# creation of Dataframe 1
df1 = pd.DataFrame(first_Set, columns=['Prod_1', 'Price_1'])
print(df1)

# elements of second dataset
second_Set = {'Prod_2': ['Laptop', 'Mobile Phone',
                    'Desktop', 'LED'],
        'Price_2': [25000, 10000, 15000, 30000]
        }

# creation of Dataframe 2
df2 = pd.DataFrame(second_Set, columns=['Prod_2', 'Price_2'])
print(df2)

输出:enter link description here
enter link description here
第2步数值比较:您需要导入numpy以成功执行此步骤。以下是执行比较的通用模板:
df1 ['比较结果的新列']= np.where(条件,'如果为真则值','如果为假则值')
示例:执行此代码后,将在df1下形成名为Price_Matching的新列。列结果将根据以下条件显示:
如果Price_1等于Price_2,则将值指定为True,否则将值指定为False。

import numpy as np

# add the Price2 column from
# df2 to df1
df1['Price_2'] = df2['Price_2']

# create new column in df1 to
# check if prices match
df1['Price_Matching'] = 
np.where(df1['Price_1'] == df2['Price_2'],
                            'True', 'False')
df1

输出:enter link description here

相关问题