如何使用for循环和从其他df派生的新列名重命名df的列?

时间:2019-01-01 22:06:55

标签: python pandas dataframe rename

我用一个for循环和一个group by函数从一个更大的数据框中创建了一个数据框。多索引数据框的所有列名称均为“区域”,所有列的第二级称为“平均值”。我正在按iloc索引列,并希望根据不同的数据框为它们命名。

你能帮帮我吗?当然,如果您采用完全不同的方法,我也将非常感谢。

bis=len(index_df['amount'])
for c, d in zip (index_df['amount'], (bis)): 
    num[c] = num.iloc[:,[d]]

我收到以下错误消息: “ TypeError:zip参数2必须支持迭代”

1 个答案:

答案 0 :(得分:0)

您不能遍历整数,但是可以遍历range对象,例如range(len(index_df.index))。但是,无论如何,除非您将pd.DataFrame.pop=结合使用,否则Pandas中的num用于分配,而不是用于重命名。

如果index_df['amount']的每一列都与num.columns = index_df['amount'] 中的值相关,并且该关系按整数位置对齐,则可以简单地使用赋值:

handleInputs()

就是这样,不涉及手动迭代。