【问题标题】:Comparing CSV values比较 CSV 值
【发布时间】:2019-02-08 18:15:22
【问题描述】:

我不是编码员,但我一直在尝试比较 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 文件,其中包含新的更改值。请帮忙解决这个问题。

【问题讨论】:

标签: python csv export-to-csv


【解决方案1】:

有很多方法可以做到这一点,但从一些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 中查看:

【讨论】:

    【解决方案2】:

    尝试pandas.read_csv() 读取您的文件 (link) 并尝试pandas.to_csv 再次将其写出 (link)。

    你可以开始学习 pandas here

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      相关资源
      最近更新 更多