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

问题描述 投票:0回答:1

我有几个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)

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

"dfFrequeny100_56"

对于此文件,我需要具有类似以下的列:

'counter_routes_56', 'percent_availability_56'

我将不胜感激。

python-3.x pandas multiple-columns concat
1个回答
0
投票

我相信您需要_之后的值并进行拆分,并按+=添加到原始列名称:

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.columns += '_' + filename.split('_')[1].split('.')[0]
    df = df[df.counter_routes>0]
    li.append(df)
© www.soinside.com 2019 - 2024. All rights reserved.