对具有不同字节值的列求和的最佳方法是什么? (男, 绿, 韩)
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
循环来编写代码以将兆字节和千字节转换为千兆字节。
我有一个包含 '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
循环来编写代码以将兆字节和千字节转换为千兆字节。