对具有不同字节值的列求和的最佳方法是什么? (男, 绿, 韩)

What is best way to sum a column with different byte values? (M, G, K)

我有一个包含 'DiskWrite' 列的数据集。有字节值,例如 M、G 和 K。我需要创建此列的总和,稍后我将用它来创建绘图。我只关心准确地求和这些值。我曾尝试为单位创建一个单独的列,但没有取得太大进展。

**DiskWrite**
31.77M
6301.45M
1.50G

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

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

提前致谢!

你可以将它们全部转换成一个unit.I建议最小的一个。我猜你的问题是 Kb。所以检查一下:

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_ / 1000000 再次转换 sum_ 或通过更改两个 for 循环来编写代码以将兆字节和千字节转换为千兆字节。