Python 使用浮点型NaN创建空数据帧的优雅方法
我想创建一个填充NaN的Pandas数据框。在我的研究中,我发现: 这段代码生成一个数据帧,其中填充了类型为“object”的NAN。因此,它们以后不能用于Python 使用浮点型NaN创建空数据帧的优雅方法,python,pandas,numpy,dataframe,nan,Python,Pandas,Numpy,Dataframe,Nan,我想创建一个填充NaN的Pandas数据框。在我的研究中,我发现: 这段代码生成一个数据帧,其中填充了类型为“object”的NAN。因此,它们以后不能用于interpolate()方法。因此,我用这段复杂的代码创建了DataFrame(灵感来自: 这将导致数据帧中填充类型为“float”的NaN,因此以后可以将其与interpolate()一起使用。有没有更优雅的方法来创建相同的结果?您可以在构建数据帧时直接指定数据类型: >>> df = pd.DataFrame(inde
interpolate()
方法。因此,我用这段复杂的代码创建了DataFrame(灵感来自:
这将导致数据帧中填充类型为“float”的NaN,因此以后可以将其与
interpolate()
一起使用。有没有更优雅的方法来创建相同的结果?您可以在构建数据帧时直接指定数据类型:
>>> df = pd.DataFrame(index=range(0,4),columns=['A'], dtype='float')
>>> df.dtypes
A float64
dtype: object
指定数据类型会迫使Pandas尝试使用该类型创建数据帧,而不是尝试推断它。只需将所需的值作为第一个参数传递,如
0
、math.inf
或此处的np.nan
。然后,构造函数初始化值数组并将其填充到参数index
和columns
指定的大小:
>>> import numpy as np
>>> import pandas as pd
>>> df = pd.DataFrame(np.nan, index=[0, 1, 2, 3], columns=['A', 'B'])
>>> df.dtypes
A float64
B float64
dtype: object
>>> df.values
array([[nan, nan],
[nan, nan],
[nan, nan],
[nan, nan]])
希望这能有所帮助
pd.DataFrame(np.nan, index = np.arange(<num_rows>), columns = ['A'])
pd.DataFrame(np.nan,index=np.arange(),columns=['A']
您可以尝试以下代码行:
pdDataFrame = pd.DataFrame([np.nan] * 7)
这将创建一个大小为7、NaN类型为float的熊猫数据帧:
如果打印pdDataFrame
,输出将为:
0
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
另外,pdDataFrame.dtypes
的输出为:
0 float64
dtype: object
对于多个列,您可以执行以下操作:
df = pd.DataFrame(np.zeros([nrow, ncol])*np.nan)
我不得不把dummyarray=np.empty((4,1))放在pd.Series的工作中。杰出的
0 float64
dtype: object
df = pd.DataFrame(np.zeros([nrow, ncol])*np.nan)