【问题标题】:How do I rename columns of a df with a for loop and new column names deriving from other df?如何使用 for 循环和从其他 df 派生的新列名重命名 df 的列?
【发布时间】:2019-05-28 16:28:24
【问题描述】:

我用一个更大的数据框制作了一个带有 for 循环和分组功能的数据框。多索引数据框的所有列的名称为“区域”,所有列的第二级称为“平均值”。我正在按 iloc 对列进行索引,并希望根据不同的数据框为它们命名。

你能帮帮我吗?当然,如果您有完全不同的方法,我也很感激。

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

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

【问题讨论】:

  • 当您zip 超过bis 这样的数字 时,您希望发生什么?
  • bis 为 4,数据框有 4 列。我想索引每一列并重命名它。

标签: python pandas dataframe rename


【解决方案1】:

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

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

num.columns = index_df['amount']

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

【讨论】:

  • 非常感谢!这对我帮助很大。这再次强调了我的编码水平非常低。哈哈 但是,它如何与迭代一起工作?我没有使用范围,因为(据我所知)我无法遍历两列...
猜你喜欢
  • 2020-10-28
  • 1970-01-01
  • 2016-09-16
  • 1970-01-01
  • 2017-11-02
  • 2023-01-23
  • 2019-01-11
  • 1970-01-01
  • 2023-01-14
相关资源
最近更新 更多