繁体   English   中英

Python - 比较 a.csv 文件所有行中的最后一列

[英]Python - Compare last column in all rows of a .csv file

我已经从 a.csv 文件中读取了所有行,如下所示:-

from csv import reader, writer

# open file in read mode
with open('data.csv', 'r') as read_obj:

    # pass the file object to reader() to get the reader object
    csv_reader = reader(read_obj)
    # Iterate over each row in the csv using reader object
    for row in csv_reader:

现在,我试图只比较 csv 文件中每一行的最后一列。 csv文件中的数据是这样的:-

Row 1: 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1
Row 2: 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0
Row 3: 0,1,0,1,1,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1
Row 4: 0,1,0,1,1,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1
Row 5: 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0

我只需要比较每一行的最后一列的 1 和 0。在最后一列中,如果第一行有 1,第二行有 0,那么我们打印第一行。

例如 1:

Row 1: 0,0,1,1
Row 2: 0,1,1,0

然后,我打印第 1 行

例如 2:

Row 1: 0,0,1,1
Row 2: 0,1,1,1
Row 3: 0,1,1,0

然后,我打印第 2 行

对此问题的任何建议将不胜感激。 谢谢!

使用 Pandas

import pandas as pd

path = (r"data.csv")

data = pd.read_csv(path)

last_column = data.iloc[: , -1]

我希望这有帮助。 它向您展示了如何:

  1. 读取您的输入行,从'1''0'转换为10 ,并存储该行
  2. 查找最后一行和倒数第二行
  3. 比较这两行的最后一列
import csv

all_rows = []
with open('data.csv', newline='') as in_f:
    reader = csv.reader(in_f)

    # Read all rows and convert columns from string to int
    for row in reader:
        all_rows.append([int(col) for col in row])

last_row = all_rows[-1]
previous_row = all_rows[-2]

if previous_row[-1] == 1 and last_row[-1] == 0:
    with open('new.csv', 'w', newline='') as out_f:
        writer = csv.writer(out_f)
        writer.writerow(previous_row)

当我在Ex 1上运行它时:

0,0,1,1
0,1,1,0

我得到:

0,0,1,1

Ex 2上:

0,0,1,1
0,1,1,1
0,1,1,0

我明白了

0,1,1,1

在一个大例子上:

0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1
0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0
0,1,0,1,1,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1
0,1,0,1,1,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1
0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0

我得到第 4 行:

0,1,0,1,1,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM