因为这学期课程想要分析股票数据,但下载的成分股被分为多个excel文件,为方便起见,写了这个合并excel的程序
我的文件主要格式如下:
这是科创50的文件:
这是科创50成分股文件:
它里面的内容如下:采用***\t***分割
这是合并后的结果:
下面是代码部分:
import os
import pandas as pd
# 读取文件夹里面所有文件的文件名
def read_file_name(file_path):
file_names = [i for i in os.walk(file_path)]
file_names_list = file_names[0][2]
return file_names_list
# 读取文件并合并成同一个df
def merge_excel(file_path, file_name_list):
df = pd.DataFrame(pd.read_csv(file_path + '\\' + file_name_list[0],
sep='\t', encoding='gbk', skiprows=[0])[' 日期'])
for file_name in file_name_list:
title = pd.read_csv(file_path + '\\' + file_name,
encoding='gbk', nrows=1, header=None)[0][0].split(' ')[1]
tex = pd.read_csv(file_path + '\\' + file_name,
sep='\t', encoding='gbk', skiprows=[0])[' 收盘']
tex = pd.DataFrame(tex)
tex = tex.rename(columns={' 收盘': title})
df = pd.concat([df, tex], axis=1)
df = df.dropna(how='any')
return df
if __name__ == '__main__':
file_path = 'D:\\Study_software\\xinan\\T0002\\export\\科创50_20220912_20230227'
file_name_list = read_file_name(file_path)
df = merge_excel(file_path, file_name_list)
index = pd.read_csv('D:\\Study_software\\xinan\\T0002\\export\\000688.xls',
sep='\t', encoding='gbk', skiprows=[0])[[' 时间', ' 收盘']]
index = index.rename(columns={' 时间': ' 日期'})
index[' 日期'] = index[' 日期'].str.strip()
index[' 日期']
total = pd.merge(df, index, how='left', on=' 日期')
total.to_csv('D:\\Study_software\\xinan\\T0002\\export\\科创50.csv', index=False)
print('保存成功')