大数据理论课(第五节----TCP通讯和pandas模块的使用)

一、TCP通信

1.客户端

import threading
import socket
#接收方法
def recvmsg(sock):
    while 1:
        try:
            data=sock.recv(1024)
            print(data.decode("UTF-8"))
            #保证发送不为空
            if(data==""):
                break
        except  ConnectionResetError as e:  #避免连接中断
            break
            
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  
sock.connect(("127.0.0.1",5003))     #连接服务器
t=threading.Thread(target=recvmsg,args=(sock,))  #创建一个接收线程
t.start()      
while 1:
    ss=input()  
    sock.send(ss.encode("UTF-8"))   #将字符串转化为utf-8字符

2.服务器

import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  #创建一个套接字
addr=("0.0.0.0",5003)   
s.bind(addr)   #绑定地址和端口号
s.listen(128)   #监听
while 1:
    s2,addr2=s.accept()    #等待连接
    print(s2,addr2,"connet to me!")
    while 1:              #等待接收
        try:
            data=s2.recv(1024)   
            if data:
                print(data.decode("UTF-8")) 
            else:
                break
        except ConnectionResetError as e:
            break

二、pandas模块的 使用

1.关于sqlite数据库的导入和访问步骤

step1: cd c:/temp
step2 :sqlite3 test. db
step3 :将表的create语句 复制到提示符后面,注意结束要加;
step4 :将insert语句保存为 c:/temp/al.sql
step5 :在提示符后键入 .read al.sql

2.利用pandas分析数据

from sqlalchemy import create_engine  
import pandas as pd

#一.读取数据-------------------------------------------------------------------------------

#1.连接数据库
engine=create_engine("sqlite:///G:/大数据实验数据库/0.engine数据库/test.db")   
detail=pd.read_sql_table("meal_order_detail1",con=engine)

#2.基本使用
detail.columns   
detail.loc[:,["counts","amounts"]].describe()   #读取counts,amounts,对其进行描叙
detail[['order_id',"counts","amounts"]]  



#二.常用函数------------------------------------------------------------------------------

#1.分组聚合
tx=detail[['order_id',"counts","amounts"]].groupby(by="order_id")  #将数据以order_id进行分组
for i in tx:   #打印每一组的具体数据
    print(i)

tx.mean().head(3)    #展示每一组的平均数
tx.std().head(3)    #展示每一组的标准差
tx.size().head(3)   #展示每一组的个数


#2.agg方法分析数据属性
import numpy as np
detail[["counts","amounts"]].agg([np.sum,np.mean])
detail.agg({"counts":np.sum,"amounts":np.mean})
detail.agg({"counts":np.sum,"amounts":[np.mean,np.sum,np.std],"order_id":np.sum})
tx.agg(np.mean).head(3)

#3.join的内外连接(将所有的列拼在一起,对应的行   outer并集  inner交集)
df1=detail.iloc[:5,:3]
df2=detail.iloc[:8,:3]
pd.concat([df1,df2],axis=1,join="outer")    
pd.concat([df1,df2],axis=1,join="inner")


#三、imedelta模块------------------------------------------------------------------------------------------

import pandas as pd
order=pd.read_csv("G:\\大数据实验数据库\\3.大数据实验数据\\meal_order_info.csv",encoding="GBK")  
order["lock_time"]  
order["myxxx"]=pd.to_datetime(order["lock_time"])    #添加新的列
order["myxxx2"]=order["myxxx"]+pd.Timedelta(days=10)  
order.head()    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值