Python 在csv中搜索多个值并在列表中返回行

Python 在csv中搜索多个值并在列表中返回行,python,pandas,csv,Python,Pandas,Csv,我有一个包含多行的CSV,一个字段名为“市场”。我想做的是将每一行与我在列表中的市场联系点相匹配,但我似乎无法让它正常工作 到目前为止,我已经尝试了以下方法: PoC1 = ["Georgia", "Florida", "Alabama", "Mississippi"] PoC2 = ["New York", "New Jersey", "Connecticut", "Pennsylvania"] PoC3 = ["California", "Arizona", "Nevada", "Orego

我有一个包含多行的CSV,一个字段名为“市场”。我想做的是将每一行与我在列表中的市场联系点相匹配,但我似乎无法让它正常工作

到目前为止,我已经尝试了以下方法:

PoC1 = ["Georgia", "Florida", "Alabama", "Mississippi"]
PoC2 = ["New York", "New Jersey", "Connecticut", "Pennsylvania"]
PoC3 = ["California", "Arizona", "Nevada", "Oregon"]

import pandas as pd

df = pd.read_csv("Markets.csv")
PoC1Markets = df[df['Market'] == PoC1]
PoC2Markets = df[df['Market'] == PoC2]
PoC3Markets = df[df['Market'] == PoC3]
但这并没有带来任何回报。作为参考,每行包含一个纬度/经度坐标和一个我希望返回的字母数字代码。我试图返回与市场联系人相关的每一行,并在CSV中分别向他们发送一封电子邮件,其中包含他们各自的行。任何帮助都将不胜感激


我发现提供的代码中缺少一些东西,但我想我可以理解您想要做什么。我想告诉你们的是,一定要放上正确的列名和索引,这样你们就不会感到困惑。正如@Paula Livingstone所提到的,我也会确保它返回了一些东西。
也就是说,这样做的最佳方法是使用
isin
功能,例如:

data = df[df[header[0]].isin(list[0])]
希望能有帮助。


我发现提供的代码中缺少一些东西,但我想我可以理解您想要做什么。我想告诉你们的是,一定要放上正确的列名和索引,这样你们就不会感到困惑。正如@Paula Livingstone所提到的,我也会确保它返回了一些东西。
也就是说,这样做的最佳方法是使用
isin
功能,例如:

data = df[df[header[0]].isin(list[0])]

希望有帮助。

我不熟悉熊猫,我可能误解了你的目标,但像这样的东西能满足你的需要吗?它将根据
Market
字段的值将.csv文件中的记录分成3个存储桶

import csv

PoC1 = ["Georgia", "Florida", "Alabama", "Mississippi"]
PoC2 = ["New York", "New Jersey", "Connecticut", "Pennsylvania"]
PoC3 = ["California", "Arizona", "Nevada", "Oregon"]

PoC1Markets = []
PoC2Markets = []
PoC3Markets = []

with open('Markets.csv','rb') as input:
  reader = csv.DictReader(input)
  for record in reader:
    market = record['Market']
    if market in PoC1:
      PoC1Markets.append(record)
    if market in PoC2:
      PoC2Markets.append(record)
    if market in PoC3:
      PoC3Markets.append(record)
  print(PoC1Markets)

我不熟悉熊猫,我可能误解了你的目标,但这样的东西能满足你的需求吗?它将根据
Market
字段的值将.csv文件中的记录分成3个存储桶

import csv

PoC1 = ["Georgia", "Florida", "Alabama", "Mississippi"]
PoC2 = ["New York", "New Jersey", "Connecticut", "Pennsylvania"]
PoC3 = ["California", "Arizona", "Nevada", "Oregon"]

PoC1Markets = []
PoC2Markets = []
PoC3Markets = []

with open('Markets.csv','rb') as input:
  reader = csv.DictReader(input)
  for record in reader:
    market = record['Market']
    if market in PoC1:
      PoC1Markets.append(record)
    if market in PoC2:
      PoC2Markets.append(record)
    if market in PoC3:
      PoC3Markets.append(record)
  print(PoC1Markets)

我注意到的第一件事是,您没有要求它返回我不熟悉的任何内容,但是
df[…]==…
将是一个布尔值。所以你基本上是说,
df
可以通过字符串(
'Market'
)和布尔值进行索引,我觉得这很奇怪。你能进一步解释一下你想要完成什么吗?对不起,不一定要在熊猫馆。我想做的是在CSV中搜索特定于联系人的字符串,然后在列表中返回这些字符串。我注意到的第一件事是,您没有要求它返回任何我不熟悉的内容,但是
pandas
,但是
df[…]==…
将是一个布尔值。所以你基本上是说,
df
可以通过字符串(
'Market'
)和布尔值进行索引,我觉得这很奇怪。你能进一步解释一下你想要完成什么吗?对不起,不一定要在熊猫馆。我试图做的是在CSV中搜索特定于联系人的字符串,并在列表中返回这些字符串。在这种情况下,是
标题
列表
我正在搜索的实际标题和列表?在这种情况下是
标题
列表
我正在搜索的实际标题和列表?是的正是我要找的!非常感谢你的帮助!是的,这正是我要找的!非常感谢你的帮助!