我使用 for 循环和分组功能从更大的数据帧创建了一个数据帧。多索引数据框的所有列的名称为“Area”,所有列的第二级称为“mean”。我正在按 iloc 对列进行索引,并希望根据不同的数据框为它们指定名称。
你能帮我一下吗?当然,如果您有完全不同的方法,我也很感激。
bis=len(index_df['amount'])
for c, d in zip (index_df['amount'], (bis)):
num[c] = num.iloc[:,[d]]
我收到以下错误消息: '类型错误:zip 参数 #2 必须支持迭代'
最佳答案
您不能迭代整数,但可以迭代 range
对象,例如范围(len(index_df.index))
。但是,无论如何,Pandas 中的 =
用于赋值,而不是用于重命名,除非将其与 pd.DataFrame.pop
结合使用。 .
如果num
的每一列都与index_df['amount']
中的一个值相关,并且该关系按整数位置对齐,则可以简单地使用赋值:
num.columns = index_df['amount']
就是这样,不涉及手动迭代。
关于python - 如何使用 for 循环和从其他 df 派生的新列名重命名 df 的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53999313/