转换包含float AND单位的数字列的最佳方法是什么,如下所示:

df = pd.DataFrame(["211.301 MB","435.5 GB","345.234 Bytes"])


预期输出(以字节为单位),例如:

211.301*1024*1024 = 221565157.376


像这样的许多问题:
Reusable library to get human readable version of file size?

正在显示相反的方法:将数字转换为人类可读的格式。如何将人类可读的内容转换为浮点数?

有没有比拆分更有效的方法:

spl = pd.DataFrame(dataf['Total_Image_File_Size'].str.split(' ',expand=True))


然后用if的倍数解析units列

谢谢

最佳答案

我认为这应该有效:https://pypi.python.org/pypi/humanfriendly

>>> import humanfriendly
>>> user_input = raw_input("Enter a readable file size: ")
Enter a readable file size: 16G
>>> num_bytes = humanfriendly.parse_size(user_input)
>>> print num_bytes
17179869184
>>> print "You entered:", humanfriendly.format_size(num_bytes)
You entered: 16 GB

10-08 20:02
查看更多