pandas的读写操作

文本文件的操作:

txt = pd.read_table('M:/Python数据分析笔记/data/a.txt',sep=',',encoding='utf-8')
csv = pd.read_csv('M:/Python数据分析笔记/data/meal_order_info.csv',sep=',',encoding = 'gbk')
csv.to_csv('路径',sep=',',encoding = 'gbk')

 

数据库的读写操作:

from sqlalchemy import create_engine
import pandas as pd
#将SQL查询读取到DataFrame,并返回一个dataframe

                                       数据库  数据库工具 用户名 密码  IP           端口号  数据库名称
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/database?charset=utf8')   #创建连接

 

 

## 时间转换和处理
#前面的处理:数值型、类别类型
#时间类型
#pandas快速实现时间字符串的转换、信息提取、时间运算的相关方法
#pandas相关的类:
1. timestamp:最基础的时间类,表示某个时间点,表示绝大多数场景的时间数据
2. Timedelta:表示不同单位的时间,比如:1.5h、2min、10s

 


#调用pandas的求均值函数
print('订单详情表中amount(价格)的平均值为:', detail2['amounts'].mean())

#转换字符串时间为标准时间
import pandas as pd
order = pd.read_table('E:/数据分析数据源/data/meal_order_info.csv',sep=',',encoding='gbk')
print('进行转换前订单信息表lock_time的类型为:',order['lock_time'].dtypes)

#我们一般会将时间相关的字符串转换成timestamp,pandas提供了to_datetime


order['lock_time']=pd.to_datetime(order['lock_time'])
print('进行转换后订单信息表lock_time的类型为:',order['lock_time'].dtypes)
print('前五条数据:',order.iloc[:5,9:13])

 

# 提取日期的年、月、日、时、分、秒
year1 = [i.year for i in order['lock_time']]
print('lock_time中年份数据前5个为:',year1[:5])

month1 = [i.month for i in order['lock_time']]
print('lock_time中月份数据前5个为:',month1[:5])

day1 = [i.day for i in order['lock_time']]
print('lock_time中的日期数据前5个为:',day1[:5])

weekday1 = [i.dayofweek for i in order['lock_time']]
print('lock_time中的星期名称数据前5个为:',weekday1[:5])

hour1 = [i.hour for i in order['lock_time']]
print('lock_time中的小时数据前5个为:',hour1[:5])

minute1 = [i.minute for i in order['lock_time']]
print('lock_time中的分钟数据数据前5个为:',minute1[:5])

second1 = [i.second for i in order['lock_time']]
print('lock_time中的秒数据数据前5个为:',second1[:5])


#时间的运算
#Timedelta
#所有的lock_time都加2天
time1 = order['lock_time']+pd.Timedelta(days = 2)
print('lock_time加2天后的前5条数据:',time1[:5])

 

#需求:查看订单信息表的相关时间统计信息,都是操作 order['lock_time']
#1:统计订单最早的时间?
#2:统计订单最晚的时间?
#3:订单持续时间时间是多少?
#4:平均点餐时间? (订单结束时间-开始时间).mean()
#5:最短点餐时间? (订单结束时间-开始时间)。min()
#6:最长的点餐时间? (订单结束时间-开始时间)。max()


minTime = order['lock_time'].min()
maxTime = order['lock_time'].max()
print('最早的订单时间:',minTime)
print('最晚的订单时间:',maxTime)
print('订单持续的时间:',maxTime-minTime)

 

order['use_start_time'] = pd.to_datetime(order['use_start_time'])#把时间字符串转成Timestamp时间类型
time2 = order['lock_time']-order['use_start_time'] #m每一个订单的时间
print('平均用餐时间:',time2.mean())
print('用餐最短时间:',time2.min())
print('用餐最长时间:',time2.max()) #数据有误

       

     

 

posted @ 2020-05-17 21:55  dijun  阅读(704)  评论(0)    收藏  举报