将多个数据框合并在一起时如何设置数据框中列的名称?
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)
我有几个 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)