for循环产生很多列名

for loop producing a lot of column names

我有以下代码来重命名多个数据框的列,效果很好 但它正在输出堆叠的重复列。

df_names=('castaways', 'challenge_description', 'challenge_results')
for df_name in df_names:
    df = globals()[df_name]
    df.columns = [df.columns.str.replace(' ','_').str.lower() for col_name in df.columns]  

您混淆了 df.columns.str.* 和 list-comprehension。您需要做其中之一,但不能同时做:

df.columns = df.columns.str.replace(' ','_').str.lower()

df.columns = [col_name.replace(' ','_').lower() for col_name in df.columns]