Сравните 2 файла csv, чтобы получить результат в другом файле csv с результатом True или False в python - PullRequest
0 голосов
/ 06 августа 2020

У меня есть 2 файла csv, и я пытаюсь их сравнить, где результат должен поступать в другом файле csv с результатом, сравнивающим данные в нескольких файлах с True или false. мне, чтобы получить правильный код.

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Если имена столбцов (например, «Инструмент», «Цена», «цвет») и имена строк (например, «A», «B», «C») идентичны, вы можете сделать это с помощью ==:

df1 = pd.read_csv('Book1.CSV', index_col=0)
df2 = pd.read_csv('Book2.CSV', index_col=0)

compare_df = (df1 == df2)
compare_df.to_csv('Result.csv')

Может быть полезно сравнить значения с учетом типа, например, чтобы распознать, что 1 (целое число) и 1.0 (плавающее) равны. В таком случае pandas отлично справляется с проблемой.

0 голосов
/ 06 августа 2020

Использование CSV-модуля Pythons и предположение, что ваши CSV-файлы используют запятые в качестве разделителей:

import csv

with open("Book1.CSV") as book1, open("Book2.CSV") as book2, open("Result.csv", "w") as result:
    reader1 = csv.DictReader(book1)
    reader2 = csv.DictReader(book2)
    writer = csv.DictWriter(result, ["Instrument", "Price", "colour"])
    writer.writeheader()

    for row1, row2 in zip(reader1, reader2):
        writer.writerow({
            "Instrument": row1["Instrument"],
            "Price": str(row1["Price"] is row2["Price"]).upper(),
            "colour": str(row1["colour"] is row2["colour"]).upper(),
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...