如何使用Python插入第一列1作为CSV文件名将多个CSV/Excel文件合并为一个文件?

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

尝试将超过 100 个 CSV 文件合并到单个 Excel 文件中,但条件如下: CSV 文件的特定行。 (包含的数据为第1-250行)

数据框 Excel 文件的第一列是 CSV 文件的名称。

1-100 个 CSV。 数据包含在第 1-250 行中。列大部分相同,一些 CSV 有额外的列数据。

所需输出:

1 个 Excel 工作表,其中所有 CSV 数据从第 2 列开始,第一列是 CSV 文件的名称(例如,

data1.csv
data2.csv
表示适用的行)。

当前输出是正确的合并,但第 1 列未填充。

# importing the required modules
import glob
import pandas as pd

 
df = pd.DataFrame()

# specifying the path to csv files
path = "C:/Users/Staylor/Documents/Python test"
 
# csv files in the path
file_list = glob.glob(path + "/*.csv")
 
# list of excel files we want to merge.
# pd.read_excel(file_path) reads the csv
# data into pandas dataframe.
excl_list = []
 
for file in file_list:
    excl_list.append(pd.read_csv(file))
    df['col1'] = file
    
    
# create a new dataframe to store the 
# merged excel file.
excl_merged = pd.DataFrame()
 
for excl_file in excl_list:
     
    # appends the data into the excl_merged 
    # dataframe.
    excl_merged = excl_merged.append(
      excl_file, ignore_index=True)
 
# exports the dataframe into excel file with
# specified name.
excl_merged.to_excel('total_python.xlsx', index=False)
python csv merge
1个回答
0
投票
  • 您尝试将文件名添加到第一列的方式
    df['col1']= file
    不正确。
for file in file_list:
    excl_list.append(pd.read_csv(file))
    df['col1'] = file
  • 这就是为什么它没有按照您想要的方式将名称放入第一列。
  • 这是您想要的更新后的代码:
import glob
import pandas as pd

path = "C:/Users/Staylor/Documents/Python test"
file_list = glob.glob(path + "/*.csv")
df_list = []

for file in file_list:
    df = pd.read_csv(file).iloc[:250, :]
    df.insert(0, 'File Name', file.split('/')[-1])
    df_list.append(df)

excel_merged = pd.concat(df_list, ignore_index=True)
excel_merged.to_excel('total_python.xlsx', index=False)
© www.soinside.com 2019 - 2024. All rights reserved.