遍历带有列标题的行

时间:2019-06-15 05:07:50

标签: python csv for-loop

我想在csv文件的第2列中获得总利润:     Date Profit/Losses Jan-10 867884 Feb-10 984655 Mar-10 322013 Apr-10 -69417 May-10 310503 Jun-10 522857 Jul-10 1033096 Aug-10 604885 Sep-10 -216386 ... ...

我试图做出一个if语句,如果行,那么PositiveCounter将存储正值,而NegativeCounter将存储负值,然后得到总数。


file = "./pybank.csv"

with open(file,"r",newline="") as datafile:
    writer = csv.reader(datafile)
    # writer.writerow(["Columna 1", "Columna 2", "Columna 3"])
    # writer.writerow(zipped)

#variables
    numMonths = 0
    totalAmountPositive = 0
    totalAmountNegative = 0
    for row in writer:
        if row[0]:
            numMonths += 1
        if row[1]:
            if row[1] >= 0:
                totalAmountPositive = totalAmountPositive + row[1]
            else:
                totalAmountNegative = totalAmountNegative + row[1]
    totalAmount = totalAmountPositive + totalAmountNegative
    print(numMonths)
    print(totalAmount)

我除了第2列的总数

3 个答案:

答案 0 :(得分:0)

使用熊猫进行更好的操作

安装熊猫

$ pip install pandas

代码

import pandas as pd
df = pd.read_csv("./pybank.csv")
profit = df['Profit/Losses'].sum()

答案 1 :(得分:0)

我希望您在Pandas库中完成这些任务。您可以使用pip install pandas安装。

import pandas as pd

df = pd.read_csv('./pybank.csv', sep='\t', dtype={'Profit\Loses': int64})

sum_profit = df['Profit\Loses'].sum()

print(sum_profit)

当涉及sep时,您的文件看起来像用制表符分隔,但可能是空格,因此请将\t更改为\s。我们正在做的是将文件读取到数据帧并设置正确的数据类型,以便我们可以使用sum。查阅Pandas文档,了解更多您可以做的事情。

答案 2 :(得分:0)

使用csv打开文件不是一个好方法。 通过以下方式使用pandas库:

import pandas as pd 
dataframe = pd.read_csv("./pybank.csv")

totalAmount = dataframe['Profit/Losses'].sum()