根据循环中的两个索引自动重命名 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
我想使用两个循环自动重命名 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