【发布时间】:2018-08-16 14:08:54
【问题描述】:
我从 csv 文件中将不同精度的浮点值列表读取到 Pandas 系列中,并且需要小数点后的位数。所以,对于 123.4567,我想得到 4。
我设法得到这样随机生成的数字的位数:
df = pd.Series(np.random.rand(100)*1000)
precision_digits = (df - df.astype(int)).astype(str).str.split(".", expand=True)[1].str.len().max()
但是,如果我使用 pd.read_csv 从磁盘读取数据,其中某些行是空的(因此用 nan 填充),我会收到以下错误:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/home/tgamauf/workspace/mostly-sydan/venv/lib/python3.6/site-packages/pandas/core/generic.py", line 4376, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'str'
这里出了什么问题? 有没有更好的方法来做我需要的事情?
【问题讨论】:
-
你可以先把缺失的值补上
fillna来防止错误的发生,不是吗?