【问题标题】:How to sum values from a row, or a column from a csv file?如何对 csv 文件中的一行或一列的值求和?
【发布时间】:2019-04-08 02:58:13
【问题描述】:

有人可以帮助我了解python如何对一行和一列的值求和,第二个我相信我已经弄清楚了到目前为止我还没有掌握这个概念,一旦我能够分配值,求和,过滤到一个变量,我可以继续进行可视化。

文件 年份 Jan Fev Mar ... 每年 1948 4.0 4.7 4.5 ... 3.8
1949 5.0 5.8 5.6 ... 5.9 ...

with open('unemployment1948.csv', 'r') as unFile:
        unReader = csv.DictReader(unFile, delimiter = ',')
        unHeads = unReader.fieldnames
        print(unHeads)

        u = defaultdict(float)
        for r in unReader:
            for v in r['Year']:
                try:
                    d[r['1948']] += float(v)
                except ValueError:
                    pass
        print(d)

【问题讨论】:

    标签: python-3.x csv sum row


    【解决方案1】:

    pandas 似乎是在 Python 中进行此类工作的“首选”工具。

    看起来你有一个 DataFrame,所以使用 pandas 你应该能够执行以下操作:

    df.sum(axis = 0)
    

    axis=0 将返回月份的值和

    df.sum(axis = 1)
    

    将返回年份的值。

    This answer 也有一些例子以及pandas docs 本身。

    【讨论】:

    • 谢谢,我正在尝试使用 DictReader,因为这是一个练习,一旦我理解了这个概念,我就更喜欢使用 pandas。我明白了,我找到了另一种使用你的建议的方法。 {df = pd.read_csv('unemployment1948.csv', delimiter = ',', index_col = 'Year') df = pd.DataFrame(df) df.head() df.sum(axis = 1) y48 = df. loc[1948] sY48 = sum(y48[1:12]) sY48}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2021-11-19
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多