Как сбросить индекс нескольких фреймов данных pandas, используя цикл в python?
У меня есть 17 фреймов данных в списке, и я хочу сбросить индекс для всех из них, используя цикл.
Любая помощь?
Пожалуйста, покажите нам код, чтобы мы могли помочь вам достичь того, что вы ищете
Да, мои dfs есть в списке
Это был бы самый простой способ imo:
#This list contains the names of all of your dataframes
list_dataframes = [foo1, foo2, foo3, ..... , foo17]
for dataframe in list_dataframes:
dataframe.reset_index(inplace=True)
Это не изменит кадры данных в list_dataframes, потому что reset_index
не является операцией на месте.
Панды документация говорят:
reset_index: Сбросить индекс DataFrame и использовать вместо него индекс по умолчанию. Если у DataFrame есть MultiIndex, этот метод может удалить один или несколько уровней.
Это полезно, когда у вас есть сложный фрейм данных, но если у вас есть отдельные фреймы данных, вы можете сделать следующее:
for df in dataframes:
df.reset_index(inplace=True)
Это не изменит df в кадрах данных, потому что reset_index
не является операцией на месте.
Вы должны помнить, что reset_index не является операцией на месте, и вам нужно переназначить или использовать параметр inplace
.
df1 = pd.DataFrame(index=np.arange(1,10))
df2 = pd.DataFrame(index=pd.date_range('2019-01-1', periods=10))
df3 = pd.DataFrame(index=[*'ABCDEFGHIJ'])
lofdfs = [df1, df2, df3]
for df in lofdfs:
df.reset_index(inplace=True)
Или используйте понимание списка:
[df.reset_index(inplace=True) for df in lofdfs]
в какой структуре у вас есть несколько df, например, в списке и т. д.