将多个数据框合并在一起时如何设置数据框中列的名称?

How to set the names of columns in dataframe when merging several dataframes together?

我有几个 CSV 文件,我将其读取为数据框。 我需要创建一个数据框,其中包含来自具有适当列名的 CSV 文件的所有这些数据。

我找到了这个解决方案:

import pandas as pd
import glob

path = r'F:\df_freeq_new_mostfreqpart\' # use your path
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, sep = ";", index_col=None, usecols = 
    ['Unnamed: 0','counter_routes', 'percent_availability'])
    df.rename( columns={'Unnamed: 0':'meters'}, inplace=True )
    df = df[df.counter_routes>0]
    li.append(df)

frame = pd.concat(li, axis=1, ignore_index=True)

我收到了包含我所有数据的数据框,但我不知道如何设置列的名称而不是 numbers:1,2,3.. 我想实现下一个: 列的原始名称 + 原始 CSV 文件名称中的数字。 CSV文件名称示例:

"dfFrequeny100_56"

对于此文件,我需要包含如下列:

'counter_routes_56', 'percent_availability_56'

如有任何帮助,我将不胜感激。

我相信您需要 _ 之后的值,并按 +=:

拆分并添加到原始列名称
for filename in all_files:
    df = pd.read_csv(filename, sep = ";", index_col=None, usecols = 
    ['Unnamed: 0','counter_routes', 'percent_availability'])
    df.rename( columns={'Unnamed: 0':'meters'}, inplace=True )
    df = df[df.counter_routes>0]
    df.columns += '_' + filename.split('_')[1].split('.')[0]
    print (df.head())
    li.append(df)