我有一个如下所示的 CSV 文件:

    Values   Dates
      10      3/17
      20      4/17
      40      5/17

我的目标是遍历“值”列并找到每行之间的差异,并作为奖励找到行之间的平均差异。 我熟悉 Excel 的 VBA 代码,在其中我只会使用 i - (i - 1),但这并不能很好地转换为 Python。 到目前为止,我的代码如下所示:

import csv
import os 

changes = []

os.path.join("Path", "To", "File")
with open(file) as dFile:
    reader = csv.reader(dFile)
    next(reader)

    for row in reader:
        change = row[0] - (row-1)[0]
        changes.append(change)

我真的没想到这会起作用,但不确定如何与循环中的前一行进行交互。 有任何想法吗?

#1楼 票数:1

只是为了完整起见:

我只会使用 i - (i - 1),但这并不能很好地转换为 Python

这可以很好地转换为 Python,但您必须先创建一个行列表:

with open(file) as dFile:
    reader = csv.reader(dFile)
    next(reader)

    rows = list(reader)
    for i in range(1, len(rows)):
        change = rows[i][0] - rows[i-1][0]
        changes.append(change)

这就是为什么在链接问题中提出的基于生成器的解决方案通常更好。

#2楼 票数:0 已采纳

您可以在 for 循环之前再添加一个变量 ( prev_row ):

changes = []
with open('sample.csv') as dFile:
    reader = csv.reader(dFile)
    next(reader)

    prev_row = 0
    for row in reader:
        change = int(row[0]) - prev_row
        prev_row = int(row[0])
        changes.append(change)

结果将是:

changes = [10, 10, 20]

  ask by ianhousman translate from so

未解决问题?本站智能推荐:

1回复

如何使用python遍历csv中的一列

我目前正在使用 python 制作关于 csv 和编程的问卷。 我试图让我的代码循环遍历电子表格中的第一列,并只打印具有与用户在这种情况下选择的内容相对应的键的问题,1 代表地球,2 代表动物... 以下是我到目前为止的代码,但是当我遍历此代码时,如果数字不等于 1,它不会中断。此外,我还尝试
3回复

如何使用.csv文件中同一列中的值进行操作

我有一个具有不同数据格式的.csv文件,并且尝试使用同一列上的值进行操作。 我的.csv文件是这样的: 例 我想减去第二列中的值(仅那些值,我不在乎其他值)。 我设法进行访问并逐个显示值,但是我的问题是,因为我是一个初学者,所以我不太清楚索引如何处理值并可以保存它们以便以
1回复

文件 csv:如何使用 python 根据其他列值计算值的出现次数?

我有一个 .csv 文件(600 行),其中包含一些字段:提交 ID、气味类型等。 我会为每个提交 ID 计算每种气味的出现次数。 我会的输出示例: 我试过这个,但我想我需要另一个循环(也许?)对不起,我以前从未使用过 Python
1回复

使用python循环遍历列表以在csv文件中写入新行的问题

我正在尝试将内容添加到我现有的 csv 文件中。 这意味着我不想删除任何现有内容,而只想根据列表列表添加新行。 但是,在最终输出中,我没有看到 csv 中添加了任何新行。 该变量也返回空列表值(请参阅代码行上的注释)。 在这里,我首先询问用户条目的数量。 然后是每个条目的值(每列的每一行值)。
1回复

使用模块csv在Python中读取csv文件

我正在尝试使用模块csv在Python中读取csv文件。 为此,我使用一个reader变量: 但是,运行程序时,我意识到尽管cvs文件存在,但它确实被称为oneOrganization.csv。 可能是什么原因? 我从Python开始,通常这种方法有效。
1回复

Python:遍历CSV的每一行,计数每一行中的令牌,创建一个具有原始CSV每行令牌数量的新CSV

) 我有一个CSV文件,看起来像这样: 块引用 身份证内容 文字1这里有一些文字 文字2她也来了 文字3依此类推,依此类推... 块引用 我想编写一个代码来遍历此CSV表的每一行。 然后计算每行(例如每个文本)中令牌的数量
2回复

Python 循环遍历 csv 文件中的 url 返回 \https://

我是 python 新手,我试图遍历csv文件中的 url 列表,并使用BeautifulSoup获取网站title ,然后我想将其保存到文件Headlines.csv 。 但我无法抓取网页title 。 如果我使用带有单个 url 的变量,如下所示: 它工作得很好,我得到了标题Japanese
1回复

将多个CSV文件中的列合并为一个文件,并使用for循环制作多个CSV文件

我有14个CSV文件,每个文件有100列,我要从每个文件中提取第一列并将其复制到单个csv文件中。 我必须为每100列这样做(例如,下一步是将每个文件的第二列放入csv文件中)。 我之前尝试过的是下面的代码,该代码非常适合提取一列,但是我想将其放入循环中,这样我一次就可以获取100个文件