首页 > 解决方案 > Python如何根据另一个csv-pandas在一个csv中搜索值?

问题描述

我正在尝试创建一个程序,该程序需要搜索 csv 文件以匹配另一个 csv 文件中的值。

这是我到目前为止所拥有的:

import pandas as pd
import numpy as np

listings = pd.read_csv("data/listings.csv")
inventoryValue = pd.read_csv("data/inventoryValue.csv")

#get rid of rows with empty values in column 'Item Number'

listings['Item Number'].replace('', np.nan, inplace=True)
listings.dropna(subset=['Item Number'], inplace=True)

#get rid of rows with empty values in column 'AvgCost'

inventoryValue['Avg Cost'].replace('', np.nan, inplace=True)
inventoryValue.dropna(subset=['Avg Cost'], inplace=True)


#here how can I search for all of the rows in inventoryValue[Item Number] based on Listings[Item Number]

所以基本上我需要使用列表中的项目编号列在inventoryValue中查找与项目编号匹配的行,从那里我可以在Inventory Value中获取我需要的列并保存文件。

任何帮助深表感谢!

标签: pythonpandas

解决方案


我相信你想要的可以使用isin. 此方法用于通过选择在特定列中具有特定值的行来过滤数据帧。

在您的情况下,您可以创建一个list包含Listings['Item Number']的所有唯一值,然后检查inventoryValue['Item Number']中存在哪些元素,并返回一个简化的数据框:

my_list = listings['Item Number'].unique().tolist()
new_inventoryValue = inventoryValue[inventoryValue['Item Number'].isin(my_list)]

这将返回一个较小的数据框(按行),包含所有列,但您的“Iterm Number”列将仅包含my_list.


推荐阅读