pandas 数据合并导出 日期处理

#数据合并
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())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值