Elegant way to create empty pandas DataFrame with NaN of type float

后端 未结 5 2137
轮回少年
轮回少年 2020-12-08 02:10

I want to create a Pandas DataFrame filled with NaNs. During my research I found an answer:

import pandas as pd

df = pd.DataFrame(index=range(0,4),columns=[         


        
相关标签:
5条回答
  • 2020-12-08 02:11

    You could specify the dtype directly when constructing the DataFrame:

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

    Specifying the dtype forces Pandas to try creating the DataFrame with that type, rather than trying to infer it.

    0 讨论(0)
  • 2020-12-08 02:11

    You can try this line of code:

    pdDataFrame = pd.DataFrame([np.nan] * 7)
    

    This will create a pandas dataframe of size 7 with NaN of type float:

    if you print pdDataFrame the output will be:

         0
    0   NaN
    1   NaN
    2   NaN
    3   NaN
    4   NaN
    5   NaN
    6   NaN
    

    Also the output for pdDataFrame.dtypes is:

    0    float64
    dtype: object
    
    0 讨论(0)
  • 2020-12-08 02:17

    Simply pass the desired value as first argument, like 0, math.inf or, here, np.nan. The constructor then initializes and fills the value array to the size specified by arguments index and 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]])
    
    0 讨论(0)
  • 2020-12-08 02:25

    For multiple columns you can do:

    df = pd.DataFrame(np.zeros([nrow, ncol])*np.nan)
    
    0 讨论(0)
  • 2020-12-08 02:35

    Hope this can help!

     pd.DataFrame(np.nan, index = np.arange(<num_rows>), columns = ['A'])
    
    0 讨论(0)
提交回复
热议问题