Python pandas.dataframe.fillna:未实现错误

Python pandas.dataframe.fillna:未实现错误,python,pandas,dataframe,Python,Pandas,Dataframe,我想在pandas中使用fillna命令输入一个数据帧。以下是我的代码片段: import glob import pandas as pd files=glob.glob("IN.201*.csv") i=0 n=1 #the while loops are for reading and writing different subsets of the table into #different .txt files: while i<15: j=0 while

我想在pandas中使用fillna命令输入一个数据帧。以下是我的代码片段:

import glob
import pandas as pd
files=glob.glob("IN.201*.csv")
i=0
n=1    
#the while loops are for reading and writing different subsets of the table into 
#different .txt files:
while i<15:
   j=0
   while j<7:
    dfs=[]
    m=1
   #for loop over only one file for testing:
       for file in files[:1]:
        z=i+1
        #reading subset of the dataframe:
        k=float(68.109375)+float(1.953125)*i
        k1=float(68.109375)+float(1.953125)*z
        l=float(8.0)+float(4)*j
        l1=float(8.0)+float(4)*(j+1)
        df=pd.read_csv(path+file).query( '@k <= lon < @k1 and @l < lat <= @l1')[['lon','lat','country','avg']]
        #renaming columns in df: 
        df.rename(columns={"avg":"Day"+str(m)}, inplace=True)
        #print(df)
        m=m+1
        dfs.append(df)
  #imputation: 
    df_final=dfs[0].fillna(method='bfill', axis='columns', inplace=True).fillna(method='ffill', axis=1, inplace=True)
  #writing to a txt file:
    with open('Region_'+str(n), 'w+') as f:
        df_final.to_csv(f)

    n=n+1
    j=j+1
   i=i+1
导入全局
作为pd进口熊猫
files=glob.glob(“IN.201*.csv”)
i=0
n=1
#while循环用于将表的不同子集读写到
#不同的.txt文件:
当我使用轴=1时:

dfs = dfs.bfill(axis=1).ffill(axis=1)
部分问题是
inplace=True
和链接方法
inplace=True
返回一个空对象,因此没有任何东西可以从中调用链式方法。第二部分是
fillna(method='ffill')
可以缩短为仅
ffill()

使用并使用
轴=1

dfs = dfs.bfill(axis=1).ffill(axis=1)

部分问题是
inplace=True
和链接方法
inplace=True
返回一个空对象,因此没有任何东西可以从中调用链式方法。第二部分是
fillna(method='ffill')
可以缩短为
ffill()
我在使用
ffill
时遇到了这个错误(它是
fillna(method='ffill')
)当数据框在同一行中同时包含INT和NAN时,用
inplace=True
填充跨列缺少的值

解决方法是使用
inplace=False

df = pd.DataFrame(data={'a': [1]})
df = df.reindex(columns=['a', 'b', 'c'])  # columns b and c contain NaN
df.ffill(axis='columns', inplace=True)  # raises NotImplementedError
df = df.ffill(axis='columns')  # works (inplace defaults to False)

我在使用
ffill
(它是
fillna(method='ffill')
的同义词)在数据帧包含同一行中的int和nan时,使用
inplace=True
跨列填充缺少的值时遇到了这个错误

解决方法是使用
inplace=False

df = pd.DataFrame(data={'a': [1]})
df = df.reindex(columns=['a', 'b', 'c'])  # columns b and c contain NaN
df.ffill(axis='columns', inplace=True)  # raises NotImplementedError
df = df.ffill(axis='columns')  # works (inplace defaults to False)

首先,您在
inplace=True
中使用,并将其赋值回一个变量,这是一个“no-no”inplace=True返回非类型。第二,试试这个,
dfs=dfs.bfill(axis=1).ffill(axis=1)
谢谢工作人员!首先,您在
inplace=True
中使用,并将其赋值回一个变量,这是一个“no-no”inplace=True返回非类型。第二,试试这个,
dfs=dfs.bfill(axis=1).ffill(axis=1)
谢谢工作人员!谢谢你的回答。然而,是什么原因导致了这种情况?有什么简单的方法吗answer@OğuzK问题的一部分是inplace=True和链接方法。Inplace=True返回一个空对象,因此,没有任何东西可以从中调用链式方法。第二部分是fillna(method='ffill')可以缩短为ffill()。感谢您的回答。然而,是什么原因导致了这种情况?有什么简单的方法吗answer@OğuzK问题的一部分是inplace=True和链接方法。Inplace=True返回一个空对象,因此,没有任何东西可以从中调用链式方法。第二部分是fillna(method='ffill')可以缩短为ffill()。