мой код на данный момент:
import csv
myIds = ['1234','3456','76']
countries = []
# open the file
with open('my.csv', 'r') as infile:
# read the file as a dictionary for each row ({header : value})
reader = csv.DictReader(infile)
data = {}
for row in reader:
for header, value in row.items():
try:
data[header].append(value)
except KeyError:
data[header] = [value]
# extract the variables and assign to lists
myFileIds = data['id']
myFileCountry = data['country']
listfromfile = [a + " " + b for a, b in zip(myFileIds, myFileCountry)]
, приведенный выше дает эти результаты в listfromfile следующим образом:
listfromfile = ['1 Uruguay', '2 Vatican', '1234 US', '3456 UK', '5678 Brazil','10111 Argentina','234567 Spain']
Я стремлюсь к списку со странами, для которых идентификаторы встречаются в Файл my.csv, но также возможно, что идентификатор из списка myIds не будет присутствовать в файле my.csv. Затем мне нужно, чтобы это место в списке показывалось как «Неподдерживаемая страна». Оба списка должны иметь одинаковую длину myIds и страны, поэтому я буду знать, что первый идентификатор в моем списке соответствует первой стране в другом списке и т. Д. c. Желаемый результат:
myIds = ['1234','3456','76']
countries = ['US', 'UK', 'Unsupported Country']
В качестве альтернативы я пытаюсь с pandas, но тоже не повезло :(
import pandas as pd
df=pd.read_csv('my.csv')
myIds = ['1234','3456','76']
countries = df.loc[df["id"].isin(myIds),"country"].tolist()
my.csv:
id country
1 Uruguay
2 Vatican
1234 US
3456 UK
5678 Brazil
10111 Argentina
234567 Spain
Может кто-нибудь, помогите мне с этим, пожалуйста? заранее спасибо!