比较CSV值

时间:2019-02-08 18:15:22

标签: python csv export-to-csv

我不是编码人员,但是我一直在尝试比较csv原始值,并将较大的值与第一个原始值和第一个原始值切换为第二个原始值。例如:

NumberA, NumberB
10       22
33       44
776.4    779.7
78       77

代码:

if NumberA[0] < NumberB[0]: 
    NumberA[10] = NumberB[0]
    NumberB[10] = NumberA[0] 

我不确定如何为此编写循环。此外,在此之后,我想生成一个具有新更改值的新CSV文件。请帮助解决此问题。

2 个答案:

答案 0 :(得分:0)

尝试pandas.read_csv()读取文件(link),然后尝试pandas.to_csv再次写出文件(link)。

您可以开始学习熊猫here

要编写循环,我建议您熟悉Python here

答案 1 :(得分:0)

许多方法可以做到这一点,但是从一些examples from the csv library documentation开始,它们显示了如何读取csv文件和写入新的csv文件。

import csv

header = []
rows = []
sortedrows = []

with open('data.csv', 'r') as f:
    reader = csv.reader(f)

    # grab only the first row as the header/column labels
    header = next(reader, None)
    # read the csv data into list `rows`
    rows = list(reader)

for row in rows:
    # convert all values to float for easy comparison
    nums = map(float, row)
    # sort values in descending order 
    sortedrows.append(sorted(nums, reverse=True))

# write sorted data to a new csv file
with open('sorted.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(header)
    writer.writerows(sortedrows)

sorted.csv应该包含期望的结果:

NumberA,NumberB
22.0,10.0
44.0,33.0
779.7,776.4
78.0,77.0

在Excel中查看:

enter image description here