У меня есть понимание списка, и внутри него я вызываю функцию, передавая ей два аргумента.Внутри функции у меня есть другое понимание списка, которое дает мне список DataFrames.
Я должен очистить данные в каждом DataFrame, поэтому я использую цикл for, чтобы пройти через каждый DataFrame в списке.На каждой итерации я делаю все, что мне нужно, одна из вещей - сброс индекса каждого DataFrame.Я помещаю оператор печати за пределы функции, чтобы убедиться, что все получилось так, как мне нужно, но индексы не сбрасываются.Почему он не сбрасывается?
def function(xls, a_list):
# a_list is a list of strings
df_list = [pd.read_excel(xls, sheet_name=a) for a in a_list]
for df in df_list:
df.dropna(how='all', inplace=True)
df['Meal'] = df['Meal'].fillna(method='ffill')
# RIGHT HERE
df = df.reset_index(drop=True)
return df_list
# ------------------------------------
list_of_df = [function(xls, monthly_sheets) for xls, monthly_sheets in zip(xls_files, sheet_names) if monthly_sheets]
Например, вот что я получаю:
Col1 Col2
0 a f
1 b g
4 c h
7 d i
8 e j
Что я хочу, это:
Col1 Col2
0 a f
1 b g
2 c h
3 d i
4 e j
Чего мне не хватает?
Заранее спасибо!