在避免将函数应用于索引列的情况下,可以考虑以下解决方法:
df['index_col'] = df.index # 将索引列转换为普通列
df['new_col'] = df['index_col'].apply(my_function) # 应用函数
df.reset_index(inplace=True) # 将索引列转换为普通列
df_subset = df[df['index_col'] > 10] # 筛选出需要处理的部分
df_subset['new_col'] = df_subset['index_col'].apply(my_function) # 应用函数
这样可以先将索引列转换为普通列,然后再进行函数的应用,避免函数直接应用于索引列的问题。