Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 筛选CSV文件以查找国家/地区是否存在已定义的列表_Python_Pandas_Csv - Fatal编程技术网

Python 筛选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('

我试图从电子表格中提取数据,为每个国家和大陆创建新的csv

国家/地区部分运行良好,因为国家/地区已出现在电子表格中

然而,当我尝试为每个大陆创建一个新的csv文件时,我引用了一个文本文件,其中列出了该大陆上的所有国家

我正在努力让for循环检查这个国家是否在一个大陆上。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行长,所以我没有包含它,现在添加了一个示例。