python - 没有 Pandas 的 CSV 分组
问题描述
我想将数据分组到一个.csv
文件中。我的数据如下:
code,balance
CN,999.99
CN,1.01
LS,177.77
LS,69.42
LA,200.43
WO,100
我想按代码对项目进行分组并总结类似代码的余额。期望的输出是:
code,blance
CN,1001
LS,247.19
...
我最初Pandas
用于此任务,但没有可用于将该库放在服务器上的包。
mydata = pd.read_csv('./tmp/temp.csv')
out = mydata.groupby('code').sum()
解决方案最好与Python 2.6
. 如果这是重复的,我很抱歉,其他帖子似乎分组不同。
我也想避免这样做 -
if code = x
add balance to x_total
- 一种方式
我的解决方案:
def groupit():
groups = defaultdict(list)
with open('tmp.csv') as fd:
reader = csv.DictReader(fd)
for row in reader:
groups[row['code']].append(float(row['balance.']))
total={key:sum(groups[key]) for key in groups}
total=str(total)
total=total.replace(' ','')
total=total.replace('{','')
total=total.replace('}','')
total=total.replace("'",'')
total=total.replace(',','\n')
total=total.replace(':',',')
outfile = open('out.csv','w+')
outfile.write('code,balance\n')
outfile.write(total)
解决方案
蟒蛇> 2.6:
from collections import defaultdict
import csv
groups = defaultdict(list)
with open('text.txt') as fd:
reader = csv.DictReader(fd)
for row in reader:
groups[row['code']].append(float(row['balance']))
totals = {key: sum(groups[key]) for key in groups}
print(totals)
这输出:
{'CN': 1001.0, 'LS': 247.19, 'LA': 200.43, 'WO': 100.0}
蟒蛇= 2.6:
from collections import defaultdict
import csv
groups = defaultdict(list)
with open('text.txt') as fd:
reader = csv.DictReader(fd)
for row in reader:
groups[row['code']].append(float(row['balance']))
totals = dict((key, sum(groups[key])) for key in groups)
print(totals)
推荐阅读
- html - 如何上传像这个链接“https://example.com/index.php?aiJo82uwn=index.css”这样的css样式
- php - 将 laravel 博客内容导出到 wordpress
- c - 当我尝试以相反的顺序打印字符串时,为什么我的 C 程序会打印新的空白行?
- python - 无法在 Windows 10 上使用 pip 安装 Vowpalwabbit
- sql - SQL Server 选择查询很慢
- mysql - 具有多行和多列更新的节点 mysql“ON DUPLICATE KEY UPDATE”子句的占位符语法
- python - 应用于查询集的列表类的 count() 方法。奇怪的行为。姜戈
- python - 将带重音的字符串转换为数字(RSA 加密)
- python-3.x - 为什么 Jupyter notebook 打不开内核?
- python - 来自稀疏对角块的稀疏对角矩阵