Python 筛选CSV文件以查找国家/地区是否存在已定义的列表
我试图从电子表格中提取数据,为每个国家和大陆创建新的csv 国家/地区部分运行良好,因为国家/地区已出现在电子表格中 然而,当我尝试为每个大陆创建一个新的csv文件时,我引用了一个文本文件,其中列出了该大陆上的所有国家 我正在努力让for循环检查这个国家是否在一个大陆上。csv文件为每个大陆生成,但它们为空且未写入Python 筛选CSV文件以查找国家/地区是否存在已定义的列表,python,pandas,csv,Python,Pandas,Csv,我试图从电子表格中提取数据,为每个国家和大陆创建新的csv 国家/地区部分运行良好,因为国家/地区已出现在电子表格中 然而,当我尝试为每个大陆创建一个新的csv文件时,我引用了一个文本文件,其中列出了该大陆上的所有国家 我正在努力让for循环检查这个国家是否在一个大陆上。csv文件为每个大陆生成,但它们为空且未写入 ''' pull data from spreadsheet ''' import pandas as pd # Create data df = pd.read_csv('
'''
pull data from spreadsheet
'''
import pandas as pd
# Create data
df = pd.read_csv('Copy of KEYWORD LIST_ALL.csv')
# Set index
df = df.set_index('Keyword')
#get list of destinations
destlist = df['Destination'].tolist()
#turn list into set to make it easier to work with
destinations = set(destlist)
continents = ['Asia','Europe','Africa','North America','South America','Oceania']
#loop to create a csv for each destination
for dest in destinations:
tempdf = df[(df['Destination'] == dest)]
tempdf.to_csv(dest + ".csv")
print(tempdf.head())
#print(dest)
这是我有问题的循环,我可以打开文件,但在行中
tempdf = df[(df['Destination'] in countries)]
我不能比较等式,因为我必须使用位运算符?即使我想使用“in”相等检查
for cont in continents:
with open("C:/Users/HarryAdams/PycharmProjects/untitled/" + cont + ".txt") as fileobj:
countries = fileobj.readlines()
tempdf = df[(df['Destination'] countries)]
tempdf.to_csv(cont + ".csv")
print(tempdf.head())
csv的示例行:
Keyword,MSV,Rank,Value,Landing Page,Meta,Page,Destination,Destination 2
luxury holidays antigua, 40 , 1 , 8 ,http://www.kuoni.co.uk/antigua/luxury-antigua-holidays,Luxury Antigua Holidays - Kuoni,"Award winning, ATOL protected Antigua luxury holidays. Great range of Antigua all inclusive resorts. Book with Kuoni, receive all inclusive value.",Antigua,Antigua
我无法测试这个,但可能值得一试。 你为什么不在这些国家也通过熊猫来阅读呢? 我想在这种情况下,您应该使用
.isin
,因为您是在与系列进行比较
import pandas as pd
# Create data
df = pd.read_csv('Copy of KEYWORD LIST_ALL.csv')
# Set index
df = df.set_index('Keyword')
for dest, group in df.groupby('destination'):
group.to_csv(dest + '.csv')
continents = ['Asia','Europe','Africa','North America','South America','Oceania']
directory = "C:/Users/HarryAdams/PycharmProjects/untitled/"
for cont in continents:
countries = pd.read_table(directory + cont + '.txt')
df[df.destination.isin(countries[countries.columns[0]])].to_csv(cont + '.csv')
我给了你-1分,因为你没有隔离你的问题并共享示例数据。请编辑问题以包含你的CSV数据示例。抱歉,数据有80000行长,所以我没有包含它,现在添加了一个示例。