根据循环中的两个索引自动重命名 pandas 中的列

automatically rename columns in pandas based on two indices in loops

我想使用两个循环自动重命名 pandas 中数据框的列名。索引名称应包含“C”+“1 到 m 之间的数字”+“1 到 n 之间的数字”。

例如,我想将数据框的 12 列重命名为 C11、C12、C13、C14、C21、C22、C23、C24、C31、C32、C33 和 C34。

出于这个原因,我使用了以下代码:

m = 3
n= 4    
df.columns=["C"+str(i) for i in range(1, m)+ str(j) for j in range(1, n)]

但是我得到以下错误

NameError: name 'j' is not defined

此代码仅适用于一个循环,而不适用于两个循环。我该如何解决这个问题?

您可以使用嵌套的 for 循环,其范围内会产生所需的结果

m = 3
n= 4  
lst = [f"C{num}{num2}" for num in range(1, m + 1) for num2 in range(1, n + 1)]

您在 for 循环中使用了 +1,因为范围是 non-inclusive