簡體   English   中英

在Pandas Python行中的數據框中填充None值

[英]Filling None values in the dataframe in rows Pandas Python

數據如下:

    o   h   l   c
Time                
2018-10-12 09:35:00 1.15868 1.15890 1.15868 1.15884
2018-10-12 09:36:00 1.15887 1.15889 1.15869 1.15869
2018-10-12 09:37:00 1.15869 1.15890 1.15869 1.15883
2018-10-12 09:38:00 1.15883 1.15894 1.15881 1.15888
2018-10-12 09:39:00 1.15888 1.15903 1.15887 1.15894

我試圖用Nan值替換完整的行,只保留一個。 因此,上述數據框的最終輸出必須是這樣的:

    o   h   l   c
Time                
nan nan nan nan
nan nan nan nan
nan nan nan nan
nan nan nan nan
2018-10-12 09:39:00 1.15888 1.15903 1.15887 1.15894

我嘗試以下操作,並在嘗試操作時出錯:

df.fillna(inplace=True,value=None)

ValueError: must specify a fill method or value

我想知道如何填充前四行的nan值嗎?
請讓我知道我能做什么。

使用iloc

df.iloc[:-1] = np.nan
print (df)
                           o        h        l        c
Time                                                   
2018-10-12 09:35:00      NaN      NaN      NaN      NaN
2018-10-12 09:36:00      NaN      NaN      NaN      NaN
2018-10-12 09:37:00      NaN      NaN      NaN      NaN
2018-10-12 09:38:00      NaN      NaN      NaN      NaN
2018-10-12 09:39:00  1.15888  1.15903  1.15887  1.15894

對於索引中缺少的值:

df = df.set_index(np.append([np.nan] * (len(df)-1), df.index[-1])).rename_axis(df.index.name)
print (df)
                           o        h        l        c
Time                                                   
NaT                      NaN      NaN      NaN      NaN
NaT                      NaN      NaN      NaN      NaN
NaT                      NaN      NaN      NaN      NaN
NaT                      NaN      NaN      NaN      NaN
2018-10-12 09:39:00  1.15888  1.15903  1.15887  1.15894

另一個想法:

df1 = pd.DataFrame(index=df.index, columns=df.columns, data=df.iloc[[-1]])

print (df1)
                           o        h        l        c
Time                                                   
2018-10-12 09:35:00      NaN      NaN      NaN      NaN
2018-10-12 09:36:00      NaN      NaN      NaN      NaN
2018-10-12 09:37:00      NaN      NaN      NaN      NaN
2018-10-12 09:38:00      NaN      NaN      NaN      NaN
2018-10-12 09:39:00  1.15888  1.15903  1.15887  1.15894

df1 = pd.DataFrame(index=np.append([np.nan] * (len(df)-1), df.index[-1]), 
                   columns=df.columns, 
                   data=df.iloc[[-1]]).rename_axis(df.index.name)

print (df1)
                           o        h        l        c
Time                                                   
NaT                      NaN      NaN      NaN      NaN
NaT                      NaN      NaN      NaN      NaN
NaT                      NaN      NaN      NaN      NaN
NaT                      NaN      NaN      NaN      NaN
2018-10-12 09:39:00  1.15888  1.15903  1.15887  1.15894

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM