如何在 for-loop 期间更改多列 headers,其中附加列有 .globe()?
How to change multiple column headers during for-loop which append columns with .globe()?
我试图从各种 .csv-files 中追加一个具有完全相同的列 header 和结构的特定列。追加到目前为止效果很好,但我想更改 headers 列以了解哪个是哪个日期。我在 for-loop:
中以这种方式尝试过
path = r'C:\Users\....\Daten'
all_files = glob.glob(path + "/*.csv")
#create empty list
li = []
# append future index to list
df0 = pd.read_csv(r'C:\ .... \Daten\RKI_Corona_Landkreise_20210320.csv')
li.append(df0["RS"])
# append future index to list
for filename in all_files:
df = pd.read_csv(filename)
# create String from filename and split it to the date
base = os.path.splitext(os.path.basename(filename))[0]
base = base.split('_')
base = base[3]
df.rename(columns={"cases7_lk": "cases7_lk_" + base})
li.append(df["cases7_lk"])
incidences_complete = pd.concat(li, axis=1)
incidences_complete = incidences_complete.set_index("RS")
incidences_complete
输出仍然是这样的:https://i.stack.imgur.com/BKNKs.png
我没有找到确切的问题,但将问题隔离到 DataFrame 的重命名。在 for-loop 之外它工作正常,但在 for-loop 内部没有任何反应。在重命名之前,我还尝试使用将旧列 header 与 base 组合在一起的新字符串变量。附加其他列和非常简单的词典也不起作用。
希望你能帮助我。谢谢!
此处的问题出在您的 df.rename
函数上。默认情况下,此函数 returns 重命名的数据框需要分配给新变量。您有两个选择:
- 将当前数据帧替换为
df = df.rename(columns={"cases7_lk": "cases7_lk_" + base})
- 使用添加参数
inplace=True
更新当前数据帧
df.rename(columns={"cases7_lk": "cases7_lk_" + base},
inplace=True)
我试图从各种 .csv-files 中追加一个具有完全相同的列 header 和结构的特定列。追加到目前为止效果很好,但我想更改 headers 列以了解哪个是哪个日期。我在 for-loop:
中以这种方式尝试过path = r'C:\Users\....\Daten'
all_files = glob.glob(path + "/*.csv")
#create empty list
li = []
# append future index to list
df0 = pd.read_csv(r'C:\ .... \Daten\RKI_Corona_Landkreise_20210320.csv')
li.append(df0["RS"])
# append future index to list
for filename in all_files:
df = pd.read_csv(filename)
# create String from filename and split it to the date
base = os.path.splitext(os.path.basename(filename))[0]
base = base.split('_')
base = base[3]
df.rename(columns={"cases7_lk": "cases7_lk_" + base})
li.append(df["cases7_lk"])
incidences_complete = pd.concat(li, axis=1)
incidences_complete = incidences_complete.set_index("RS")
incidences_complete
输出仍然是这样的:https://i.stack.imgur.com/BKNKs.png
我没有找到确切的问题,但将问题隔离到 DataFrame 的重命名。在 for-loop 之外它工作正常,但在 for-loop 内部没有任何反应。在重命名之前,我还尝试使用将旧列 header 与 base 组合在一起的新字符串变量。附加其他列和非常简单的词典也不起作用。
希望你能帮助我。谢谢!
此处的问题出在您的 df.rename
函数上。默认情况下,此函数 returns 重命名的数据框需要分配给新变量。您有两个选择:
- 将当前数据帧替换为
df = df.rename(columns={"cases7_lk": "cases7_lk_" + base})
- 使用添加参数
inplace=True
更新当前数据帧
df.rename(columns={"cases7_lk": "cases7_lk_" + base},
inplace=True)