拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何洗掉第一列中包含单词“class”的csv的所有行,但第一行除外

如何洗掉第一列中包含单词“class”的csv的所有行,但第一行除外

白鹭 - 2022-03-01 2081 0 0
import pandas as pd
df = pd.read_csv('coords.csv',sep=',',header=1)

如何洗掉第一列中包含单词“class”的csv的所有行,但第一行除外

在这种情况下,在其第一列中包含单词“class”的标题行在下面重复了几行,而我需要的是让 csv 档案的第一行仅包含第一列中包含单词“class”列,其余洗掉它们。当我的意思是洗掉它们时,我并不是说它们被留空,因为这会影响资料,而是简单地洗掉它们

uj5u.com热心网友回复:

这是一个过滤掉这些行的小脚本。它不会将整个档案加载到存储器中,而是对每一行进行读写,除了以“类”开头的行:

import csv

with open('coords_filtered.csv', 'w', newline='') as out_f:
    writer = csv.writer(out_f)

    with open('coords.csv', newline='') as in_f:
        reader = csv.reader(in_f)
        # Transfer header
        writer.writerow(next(reader))

        for row in reader:
            if row[0] == 'class':
                continue  # skip row / don't write

            writer.writerow(row)

uj5u.com热心网友回复:

如果我理解正确,您需要清除资料中出现的所有重复标题。如果是这种情况并且档案不是那么大,您可以在 read_csv 使用之后过滤资料帧

import pandas as pd
df = pd.read_csv('coords.csv',sep=',',header=0)
df = df[df['class'] != 'class'] 

编辑:要使其正常作业,您必须将索引为 0 的第一行视为标题,以便可以过滤资料帧

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *