【问题标题】:Convert Column in CSV to list and sum the total of each return将 CSV 中的列转换为列表并汇总每个回报的总和
【发布时间】:2018-11-28 02:05:33
【问题描述】:

我正在尝试对取自 CSV 文件的列中每个名称的总回报求和。

例如,返回是 a,b,c,d,a,c,d,c,b.. 等等,没有特定的顺序。

我想:

  1. 将退货打印到单独的文件中(即获取 a、b、c 和 d)
  2. 在列中找到每个退货的总次数。

我希望打印在单独文件中的退货看起来像这样:

a: 345
b. 230
c: 450
d: 234

【问题讨论】:

  • 你能提供几行文件吗?我无法将其可视化。
  • import os import csv #定位 CSV 文件 csvpath = os.path.join('..', 'pypoll', 'election_data.csv') newfile = os.path.join('.. ', 'pypoll','election_final.txt') #跟踪参数 votes = [] Candidates = [] total_votes = 0
  • #提取第一行 total_votes = total_votes + 1 Candidates = first_row[2] print(candidates) #For循环在csv_reader中为row收集参数: #统计总票数 total_votes = sum(row[first_row [2]])) print(total_votes) #收集候选人姓名
  • 编辑问题以添加更多信息。阅读How to Askminimal reproducible example
  • 不太清楚您要查找的内容,您能否在表格视图中添加 csv 前 5 个条目并说明输出应该是什么样子(第 1 点和第2点)

标签: python python-3.x list csv


【解决方案1】:

试试 pd.to_json() 函数。

这是一个例子。

import pandas as pd
import numpy as np

n=20
columns_name = list('abcd')
df = pd.DataFrame(data = np.random.randint(1,100,size=(5,4)),
              columns= columns_name)
print(df)
df.sum().to_json("result.json")

控制台的输出将是:

a   b   c   d
0  56  91  65  82
1  63  65  50  78
2  46  43  75   3
3  37  96  84  13
4  40  59  61  66

文件将是

{"a":165,"b":230,"c":234,"d":336}

希望它能解决你的问题。

【讨论】:

    【解决方案2】:

    请看图片。我想统计每个名字在“候选人”中出现的次数,看看每位候选人获得了多少票。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-06
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 2018-05-15
      相关资源
      最近更新 更多