簡體   English   中英

計算Python中的CSV列的百分比

[英]Calculate percentage of a csv column in python

我有一個關於用戶記錄的小時數的csv文件,看起來像這樣,但是它更大(更多的用戶和項目):

用戶,項目,小時
User1,ProjectA,5
User1,ProjectB,10
User2,ProjectA,7
用戶2,項目B,12

我已經完成了一些代碼,現在可以打印所有用戶的總記錄小時數。 它還打印僅來自一個用戶的數據,以及該用戶總時數的一行。

我現在想要的是使用用戶的總小時數來計算項目時間占總時間的百分比。 例如,ProjectA在User1上的時間百分比是多少? 任何人都可以幫忙,我一直在試圖解決這個問題,但到目前為止還沒有。 我是python的新手,因此非常感謝任何提示或幫助。

提前致謝!

import csv
import collections

with open(<...>) as data_file:
    total_hours = collections.defaultdict(int)
    for row in csv.DictReader(data_file):
        total_hours[row['User']] += int(row['Hours'])

或者,您可以將數據讀入字典用戶->項目->時間,然后使用該數據:

import functools

with open(<...>) as data_file:
    data = collections.defaultdict(
        functools.partial(collections.defaultdict, int))
    for row in csv.DictReader(data_file):
        data[row['User']][row['Project']] += int(row['Hours'])

接着

total_hours = {user: sum(time.values()) for user, time in data}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM