我有一个包含如下整数值的列表
mylist = [2, 10, 5]
现在我想在如下所示的 csv 文件中找到“mylist”中的元素,并返回附加到它的“item_code”。
No, item_code
1, nm111
2, nm121
3, nm131
4, nm141
我目前正在使用 csv 进行如下操作。
with open('item_codes.csv', 'r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
if row[0] in mylist:
但是,我也有兴趣在 pandas 中执行此操作。请帮助我。
最佳答案
如果您将 csv 数据放入这样的数据框中:
df = pd.read_csv('item_codes.csv')
print(df)
输出:
No, item_code
1, nm111
2, nm121
3, nm131
4, nm141
选项 1:
您可以执行以下操作:
df[df["No"].isin([2, 10, 5])]["item_code"].tolist()
这将为您提供与列表 [2, 10, 5]
中的整数位于同一行的所有 item_code
值的列表
选项 2:
正如@jezrael 在下面的评论中所建议的,我们也可以使用 df.loc
。
解释:因为 df["No"].isin([2, 10, 5])
返回一个 bool 值数组,我们可以使用这个数组作为掩码选择行并得到相同的结果如下:
df.loc[df["No"].isin([2, 10, 5]),"item_code"].tolist()
关于python - 在 csv 文件中搜索列表值并在 python 中返回其他列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46055200/