Я хотел вписать фрейм данных, используя команду 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
Ошибка:
Traceback (most recent call last):
File "imputation_test.py", line 42, in <module>
df_final=dfs[0].fillna(method='bfill', axis='columns', inplace=True).fillna(
method='ffill', axis=1, inplace=True)
File "C:\Users\DELL\AppData\Local\Programs\Python\Python36\lib\site-
packages\p
andas\core\frame.py", line 3787, in fillna
downcast=downcast, **kwargs)
File "C:\Users\DELL\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\generic.py", line 5359, in fillna
raise NotImplementedError()
NotImplementedError
Мотивация для кода:
По сути, я хотел прочитать файл .csv в несколько фреймов данных, состоящих из разных подмножеств этой таблицы (отсюда и все циклы, которые я использовал), чтобы переставить и разбить файл / файлы .csv (на самом деле я хочу сделать это для нескольких файлов .csv) в более подходящий формат. Затем я хотел заполнить недостающие данные с помощью команды fillna вдоль оси столбца.
Код структурирован для чтения в несколько файлов .csv и поэтому содержит ненужные команды, такие как 'df = []' и 'for loop', но для упрощения я сначала пробовал этот код, чтобы убедиться, и я получил эту ошибку.
Не стесняйтесь просить больше информации для этой ошибки.
Спасибо!