简体   繁体   English

在Pandas Python行中的数据框中填充None值

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

Here is the data: 数据如下:

    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

I am trying to replace the complete row with Nan values leaving only one. 我试图用Nan值替换完整的行,只保留一个。 So the final output of the above dataframe must be something like this: 因此,上述数据框的最终输出必须是这样的:

    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

I tried the following and got error while attempting it: 我尝试以下操作,并在尝试操作时出错:

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

ValueError: must specify a fill method or value

I want to know how i can fill the nan values in place of the first four rows? 我想知道如何填充前四行的nan值吗?
Kindly, let me know what I can do. 请让我知道我能做什么。

Use iloc : 使用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

For missing values in index: 对于索引中缺少的值:

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

Another idea: 另一个想法:

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