#数据合并
import pandas as pd
# df1=pd.DataFrame({ #merge()方法
# '编号':['mr001','mr002','mr003'],
# '语文':[110,105,109],
# '数学':[105,88,120],
# '英语':[99,115,130]
# })
# df2=pd.DataFrame({
# '编号':['mr001','mr002','mr003'],
# '体育':[34.5,39.7,38]
# }) #merge(df1,df2)
# df3=pd.merge(df1,df2,right_index=True,left_index=True)#right,left合并列,on='编号'删除重复列,不能同时存在,how='left' 按左边补全
# print(df3)
#pd.concat(df1,df2,df3,keys=(['a','b','c']),axis=1,join='inner',join_axes=[df1.index]) #concat
#concat() 表结构相同则直接加在行末 keys给每部分指定名字
#axis=1则行对齐,加在列末
#join='inner',结果为表间的交集,outer为并集
#join_axes=[]根据哪张表来对齐数据
#数据导出
#.xlsx文件
#df.to_excel('df.xlsx',sheet_name='df')
#.csv文件
# df.to_csv('df.csv') #相对位置
# df.to_csv('d:\df.csv') #绝对位置
# df.to_csv('',sep='?') #分隔符
# df.to_csv('',na_rep='NA') #缺失值保存为NA
# df.to_csv('',float_format='%.2f') #格式化数据,保留两位小数
# df.to_csv('',columns=['name']) #保存索引列和name列
# df.to_csv('',header=False) #是否保留列名
# df.to_csv('',index=False) #是否保留行索引
#导出多个sheet
#p129
#日期数据处理
import pandas as pd
# df=pd.DataFrame({
# '原日期':['14-Feb-20','02-14-2020','2020.02.14','2020/02/14','20200214']
# })
# df['转换后']=pd.to_datetime(df['原日期']) #to_datetime() 将字符串转换成指定格式
# print(df)
# df=pd.DataFrame({
# 'year':[2018,2019,2020],
# 'month':[1,3,2],
# 'day':[4,5,14],
# 'hour':[12,8,2],
# 'minute':[23,12,14],
# 'second':[2,4,0]
# })
# df['转换后']=pd.to_datetime(df) #将多列组合成一列日期
# print(df)
#dt对象
# df=pd.DataFrame({'原日期':['2019.1.05', '2019.2.15', '2019.3.25','2019.6.25','2019.9.15','2019.12.31']})
# df['日期']=pd.to_datetime(df['原日期'])
# print(df)
# df['年'],df['月'],df['日']=df['日期'].dt.year,df['日期'].dt.month,df['日期'].dt.day #获取年月日
# df['星期几']=df['日期'].dt.day_name() #判断所处星期
# df['季度']=df['日期'].dt.quarter #判断季度
# df['是否年底']=df['日期'].dt.is_year_end #是否年底最后一天
# print(df)
#获取日期区间数据
# df=pd.read_excel('mingribooks.xls')
# df1=df[['订单付款时间','买家会员名','联系手机','买家实际支付金额']]
# df1=df1.set_index('订单付款时间').sort_values(by='订单付款时间')
# print(df1['2018-05-11':'2018-06-10'])
#按时期统计
# df=df.resample('AS').sum() #按年统计
# df.resample('Q').sum() #季度
# df.resample('M').sum() #月度
# df.resample('W').sum() #星期
# df.resample('D').sum() #天
# df.index=pd.to_datetime(df.index) # resample()要求索引为日期型
#按时期显示
# df.to_period('A') #年
# df.to_period('Q') #季度
# df.ro_period('M')
# df.to_period('W')
#按时期统计并显示
# df = pd.DataFrame(pd.read_excel('TB2018.xls'))
# df1=df[['订单付款时间','买家会员名','联系手机','买家实际支付金额']]
# df1 = df1.set_index('订单付款时间') # 将date设置为index
# print('---------按月统计数据-----------')
# #“MS”是每个月第一天为开始日期,“M”是每个月最后一天
# print('\n',df1.resample('M').sum())
# print('---------按季统计数据-----------')
# #“QS”是每个季度第一天为开始日期,“Q”是每个季度最后一天
# print('\n',df1.resample('QS').sum())
# print('---------按年统计数据-----------')
# #“AS”是每年第一天为开始日期,“A”是每年最后一天
# print('\n',df1.resample('AS').sum())
# print('---------按年统计并显示数据-----------')
# print('\n',df1.resample('AS').sum().to_period('A'))
# print('---------按季度统计并显示数据-----------')
# print('\n',df1.resample('Q').sum().to_period('Q'))
# print('---------按月统计并显示数据-----------')
# print('\n',df1.resample('M').sum().to_period('M'))
# df2=df1.resample('M').sum().to_period('M')
# print('---------按星期统计并显示数据-----------')
# print('\n',df1.resample('w').sum().to_period('W').head())