创建空的pandas DataFrame以浮点NaN的方式优雅地实现

21 浏览
0 Comments

创建空的pandas DataFrame以浮点NaN的方式优雅地实现

我想要创建一个填充有NaN值的Pandas DataFrame。在我的研究过程中,我发现了一个答案

import pandas as pd
df = pd.DataFrame(index=range(0,4),columns=['A'])

这段代码会生成一个由类型为“object”的NaN值填充的DataFrame。因此它们不能在之后用于例如interpolate()方法。因此,我使用这个复杂的代码创建了DataFrame(受到这个答案的启发):

import pandas as pd
import numpy as np
dummyarray = np.empty((4,1))
dummyarray[:] = np.nan
df = pd.DataFrame(dummyarray)

这个结果是一个由类型为“float”的NaN值填充的DataFrame,因此它可以在之后用于interpolate()。是否有更优雅的方式来创建相同的结果?

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以在构建DataFrame时直接指定dtype:

>>> df = pd.DataFrame(index=range(0,4),columns=['A'], dtype='float')
>>> df.dtypes
A    float64
dtype: object

指定dtype会强制Pandas尝试使用该类型创建DataFrame,而不是试图推断它。

0
0 Comments

只需将所需值作为第一个参数传递,例如 0math.inf,或者在这里使用 np.nan。然后构造函数根据参数 indexcolumns 初始化并填充值数组的大小:

>>> import numpy as np
>>> import pandas as pd
>>> df = pd.DataFrame(np.nan, index=[0, 1, 2, 3], columns=['A', 'B'])
>>> df
    A   B
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
>>> df.dtypes
A    float64
B    float64
dtype: object

0