Excel多表合并
在日常生活中,我们经常会遇到这种情况,比如我现在有一个开发任务,但是我把他分给了10个开发做,最后我希望将10个的开发文档汇总到一起。由于他们的开发类别是一致的,所有我们可以将其进行合并,这样不但不会丢失数据,而且还可以有效的分析数据。下面我们进入实例。
import pandas as pd
import glob #可以查找符合特定规则的文件路径
dict_lits=[]
# dict_lits1=glob.glob(r'C:\Users\Mayn\PycharmProjects\python_analysis\综合实战一\aa*.xlsx') #返回所有匹配的文件路径列表,绝对路径
dict_lits1=glob.glob(r'./aa/*.xlsx') #返回所有匹配的文件路径列表,相对路径
# print(dict_lits1)
# 遍历指定目录
for i in dict_lits1:
dict_lits.append(i)
# print(dict_lits)
# 读取第一个excel文件
res = pd.read_excel(dict_lits[0])
# 顺序读取excel文件并进行合并
for i in range(1,len(dict_lits)):
A=pd.read_excel(dict_lits[i])
res=pd.concat([res,A],ignore_index=True,sort=False) #ignore_index=True纵向排列,sort=False列的顺序维持原样,不进行重排序
print(res.index)
# 将数据保存到excel中
with pd.ExcelWriter('all.xlsx') as writer:
res.to_excel(writer,sheet_name='sheet1')
print('数据已保存完毕')
输出结果:
注意:glob是python自带的一个操作文件的模块。
- 【*】匹配多个或者0个字符
- 【?】匹配单个字符
- 【[]】匹配指定范围内的字符,比如:[0,9]匹配数字
股票行情数据分析
股票数据包含很多指标,可以去同花顺的行情中心查看 有10几个指标,其中收盘价是当日行情的标准,也是下一个交易日开盘价的依据,可以预测未来证券市场行情,因此当投资者对行情分析时,一般采用收盘价作为计算依据。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg') #解决:AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas'
plt.rcParams['font.sans-serif'] = ['SimHei'] #设置全局中文字体
aa=r'000001.xlsx'
df=pd.DataFrame(pd.read_excel(aa)) #读取文件
# print(df[['date']],type(df[['date']]))
# 将数据类型转换成日期格式
df['date']=pd.to_datetime(df['date'])
# 将date设置为index
df=df.set_index(['date'])
print(df)
df = df[['close']]
df['20天'] = np.round(df['close'].rolling(window=20,center=False).mean(),2)
df['50天'] = np.round(df['close'].rolling(window=50,center=False).mean(),2)
df['200天'] = np.round(df['close'].rolling(window=200,center=False).mean(),2)
df.plot(secondary_y = ['收盘价','20','50','200'],grid = True)
plt.legend(('收盘价','20天','50天','200天'),loc='upper right')
plt.show()
输出结果: