Python 如何使用从特定列开始的for循环重命名列?

Python 如何使用从特定列开始的for循环重命名列?,python,pandas,for-loop,Python,Pandas,For Loop,此代码通过在每个列名的前面添加一个字符串成功地重命名了我的列: df.columns = ["Starting Words: " + str(col) for col in df.columns] 但是,我不想更改前两个列名。如何在第3列为循环启动此?您可以简单地使用条件表达式: 如果是第一列或第二列,则新名称等于旧名称 否则,新名称是带有前缀的旧名称 现在,您只需要在迭代时获取列索引。这就是枚举函数的作用 df.columns = [ str(col) if

此代码通过在每个列名的前面添加一个字符串成功地重命名了我的列:

df.columns = ["Starting Words: " + str(col) for col in df.columns]

但是,我不想更改前两个列名。如何在第3列为循环启动此

您可以简单地使用条件表达式:

  • 如果是第一列或第二列,则新名称等于旧名称
  • 否则,新名称是带有前缀的旧名称
现在,您只需要在迭代时获取列索引。这就是
枚举
函数的作用

df.columns = [
    str(col) if i < 2 else "Starting Words: " + str(col)
    for i, col in enumerate(df.columns)
]
df.columns=[
str(col)if i<2 else“起始词:+str(col)
对于i,枚举中的列(df.列)
]


有很多方法可以做到这一点。你试了什么?怎么会失败呢?我只试过我写的东西。不知道从那里去哪里,除了我知道[2:]的位置。我没有你那么有经验,所以我问了这个问题。谢谢!这也行得通。你的第二个选择是我想弄清楚的,因为我知道[:2]和[2:],但不知道如何将其付诸实施。
df.columns = [f"{'Starting Words: ' if idx>1 else ''}{col}" 
              for idx, col in enumerate(df.columns)]
df.columns = list(df.columns[:2]) + [f"Starting Words: {col}" for col in df.columns[2:]]