Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用浮点型NaN创建空数据帧的优雅方法_Python_Pandas_Numpy_Dataframe_Nan - Fatal编程技术网

Python 使用浮点型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

我想创建一个填充NaN的Pandas数据框。在我的研究中,我发现:

这段代码生成一个数据帧,其中填充了类型为“object”的NAN。因此,它们以后不能用于
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)