求和具有不同字节值的列的最佳方法是什么? M,G,K

问题描述

我有一个带有“ diskWrite”列的数据集。有字节值,例如M,G和K。我需要创建此列的总和,以后再用它创建图。我只关心准确地求和这些值。我尝试为单位创建一个单独的列,但距离还很远。

**diskWrite**
31.77M
6301.45M
1.50G

稍后我将像这样按月对这些值进行分组(创建随机值),不需要帮助,仅需要对^以上的总和进行帮助:

Start      Sum
10/19      12.54G
11/19      34.322G

谢谢!

解决方法

您可以将它们全部转换为一个单位。我建议使用最小的单位。我想你的问题是Kb。所以检查一下:

sla = obj.sla
from pandas import DataFrame
data = {"DiskWrite": ['31.77M','6301.45M','1.50G']}
df = DataFrame(data)
K,M,G = [],[],[] # to separate all units

for i in df['DiskWrite']:
    if i[-1] == 'K':
        K.append(float(i[:-1]))
    elif i[-1] == 'M':
        M.append(float(i[:-1]))
    elif i[-1] == 'G':
        G.append(float(i[:-1]))

for i in M: # to convert MegaBytes numbers to KiloBytes
    M[M.index(i)] = i * 1000
for i in G: # to convert GigaBytes numbers to KiloBytes
    G[G.index(i)] = i * 1000000

sum_ = sum(K + M + G) # now you have the sum of all numbers by KiloBytes unit.

如果您想要以千兆字节为单位的总和,则可以使用>>> print(sum_) #answer: 7833220.0 再次转换sum_或更改两个sum_ / 1000000循环以将兆字节和千字节转换为千兆字节来编写代码。