NaNで満たされたPandas DataFrameを作成します。私の研究中に 答え を見つけました
import pandas as pd
df = pd.DataFrame(index=range(0,4),columns=['A'])
このコードにより、タイプ「オブジェクト」のNaNで満たされたDataFrameが生成されます。そのため、たとえばinterpolate()
メソッドで後で使用することはできません。したがって、この複雑なコードでDataFrameを作成しました( this answer に触発されました):
import pandas as pd
import numpy as np
dummyarray = np.empty((4,1))
dummyarray[:] = np.nan
df = pd.DataFrame(dummyarray)
これにより、タイプ「float」のNaNで満たされたDataFrameが生成されるため、後でinterpolate()
で使用できます。同じ結果を作成するよりエレガントな方法はありますか?
0
、math.inf
、またはこの場合はnp.nan
のように、目的の代表をスカラーの最初の引数として渡すだけです。次に、コンストラクターは、値配列をindex
およびcolumns
で指定されたサイズに初期化します。
>>> df = pd.DataFrame(np.nan, index=[0,1,2,3], columns=['A'])
>>> df.dtypes
A float64
dtype: object
DataFrameの作成時にdtypeを直接指定できます。
>>> df = pd.DataFrame(index=range(0,4),columns=['A'], dtype='float')
>>> df.dtypes
A float64
dtype: object
Dtypeを指定すると、Pandasは、推論しようとするのではなく、そのタイプのDataFrameを作成しようとします。
これが役立つことを願っています!
pd.DataFrame(np.nan, index = np.arange(<num_rows>), columns = ['A'])
次のコード行を試すことができます:
pdDataFrame = pd.DataFrame([np.nan] * 7)
これにより、float型のNaNでサイズ7のpandasデータフレームが作成されます。
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)