如何使用Pandas读取不包含标题的CSV文件,仅捕获第一列中的数据并执行删除操作?

good_pro

我有一个CSV文件,其中包含有关人员的信息以及占用100多个列的各种数据。没有标题,我的主要目的是仅获取人民的名字没有其他与此相关的数据。我怎样才能做到这一点?

这是我的CSV文件---'data.csv':

John   12 34 23 48 14 44 94 24  ...    #extends till 100
Becky  23 40 93 47 84 43 64 31  ...    #extends till 100
Lio    63 90 53 77 14 12 69 20  ...    #extends till 100

接下来,假设我的代码中有一个列表,其中填充了很多名称:

names = ['Timothy', 'Joshua', 'Rio', 'Catherine', 'Poorva', 'Gome', 'Lachlan', 'John', 'Lio']

我用Python打开了CSV文件,并使用列表理解功能来读取第一列中的所有名称,并将它们存储在分配了变量'people_list'的列表中。

现在,对于people_list中的所有元素,如果未在“名称”列表中看到该元素,我想在CSV文件中删除该元素。在此示例中,我想删除Becky,因为她没有出现在名称列表中。这是我到目前为止尝试过的...

演示-data.py:

names = ['Timothy', 'Joshua', 'Rio', 'Catherine', 'Poorva', 'Gome', 'Lachlan', 'John', 'Lio']
csv_filename = data.csv

with open(csv_filename, 'r') as readfile:
reader = csv.reader(readfile, delimiter=',') 
people_list = [row[0] for row in reader]

for person in people_list:
    if person not in names:
        id = people_list.index(person) #grab the index of the person in people_list who's not found in the names list.

        #using pandas
        df = pd.read_csv(csv_filename) #read data.csv file
        df.drop(df.index[id], in_place = True) #delete the row id for the person who does not exist in names list.
        df.to_csv(csv_filename, index = False, sep=',')  #close the csv file with no index
    else:
        print("This person is found in the names list")

没有删除Becky,而是删除了我CSV文件中的所有记录(包括Becky)。有人可以解释如何做吗?

耶斯列尔

将参数添加header=Noneread_csv默认列0,1,2...:

df = pd.read_csv(csv_filename,  header=None)

names = ['Timothy', 'Joshua', 'Rio', 'Catherine', 'Poorva', 'Gome', 'Lachlan', 'John', 'Lio']

然后选择第一列,df[0]并测试成员资格,Series.isin然后筛选boolean indexing

df = df[df[0].isin(names)]
print (df)

上次写入文件:

df.to_csv(csv_filename1, index = False, header=None)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用fgets和strtok在C中读取CSV文件仅读取第一列

python pandas不从csv文件中读取第一列

从Python中的csv文件中删除第一列

如何使用 EmEditor 从 100 个 CSV 文件中删除第一列和第五列?

使用上传的数据仅删除 R 中的第一列

删除csv文件的第一列

如何删除 csv 文件中的一列值而不是第一项?

使用python在csv文件中仅保留第一列

如何读取在一列中包含多个值的.csv文件

如何仅从第一列的csv记录中删除“ //”

如何仅在第一列以及包含单词“ Total”作为菜单标题的列中过滤导入的数据

如何使用Excel VBA删除第一列中包含特定代码的行?

如何操作txt文件中仅一列的组件

如何从多个文件中删除多个第一列?

如何从Linux的数据文件中删除第一列(实际上是行名)?

如果所有值都在同一列中,如何从 csv 文件中读取数据?

如何遍历 CSV 文件中的第一列?

将多个 csv 文件导入到 Pandas 中并连接到一个 DataFrame 中,其中所有 csv 中的第一列都相同,并且没有数据标题只是文件名

如果colspecs参数不包含第一列,则Python中的pandas中的read_fwf不使用注释字符

按第一列排序CSV文件,忽略标题

如何更改文件中的第一列数据?

如何使用R删除SQL数据库中的第一列

CSV.foreach不读取CSV文件中的第一列

不带列标题的SAS .DAT文件在SAS Studio中仅读取第一行

在没有标题和第一列的csv文件中对行进行排序

如何使用Python删除csv文件中仅包含一项的行?

使用python覆盖csv文件中的第一列和最后一列

读取csv文件Python时跳过第一列

使用第一列作为csv的标题