python能处理多大的数据包-利用Python进行数据处理(更新)

一、导入数据包

#首先导入pandas、numpy、matplotlib等等包

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns

color = sns.color_palette()#调色盘,color=color[1]

#juypter要写

%matplotlib inline

#设置字体类型

import matplotlib

font={"family":"Microsoft YaHei"}

matplotlib.rc("font",family="Microsoft YaHei")

二、读取文件

#读取文件

titanic=pd.read_csv("titanic1.csv")

#查看表头

print(titanic.head())

#数据分别为乘客ID、生存、船舱等级、乘客名字、性别、年龄、兄弟姐妹、父母配偶、票号、票价、船舱、登舱口

#数据描述

print(titanic.describe())

#查看缺失值

print(titanic.isnull().any())

#年龄、船舱、登舱口有缺失

#描述信息

print(titanic.info())

#数据分布

print(titanic.shape)

三、数据处理-填补缺失值,删除无用列,数值转化

#1.删除

# 计算有多少重复值的值

titanic.duplicated().sum()

#去重

tb.drop_duplicates(inplace=True)

#删除Cabin列、Ticket列

#del titanic["Cabin"]

del titanic["Ticket"]

titanic.drop("Cabin",axis=1,inplace=True)

#删除空值的行

titanic= titanic.dropna(how="any",axis=0)

#2.填补

#用均值填补

titanic["Age"]=titanic["Age"].fillna(titanic["Age"].mean())

#登舱口用众数

#如果该列是字符串的,就将该列中出现次数最多的字符串赋予空值,mode()函数就是众数

titanic.Embarked[titanic.Embarked.isnull()] = titanic.Embarked.dropna().mode().values

#median()中位数

#3.转化

#将登舱口转化为数值型

titanic.loc[titanic["Embarked"]=="S","Embarked"]=1

titanic.loc[titanic["Embarked"]=="C","Embarked"]=2

titanic.loc[titanic["Embarked"]=="Q","Embarked"]=3

#将数值转化为字符串

def behavior_type(type):

if type == 1:

return "pv"

elif type == 2:

return "favor"

elif type == 3:

return "cart"

else:

return "buy"

tb["behavior_type"] = tb["behavior_type"].apply(behavior_type)

#时间格式转化

#2014-12-06 02 拆分为2014-12-06/02

tb["date"] = tb["time"].apply(lambda x:x.split(" ")[0])#日期

tb["time"] = tb["time"].apply(lambda x:x.split(" ")[1])#时间

#2014-09-19 转化格式, 并提取出年份、星期几, 月份

trade["day"]= pd.to_datetime(trade.day,format="%Y%m%d")

trade["year"]=trade.day.dt.year

trade["month"] = trade.day.dt.month#月份

trade["year_month"] = trade.day.dt.strftime("%Y-%m")

trade["week"] = trade.day.dt.dayofweek#周几#0为周一,6为周日

#2011-01-01 00:00:00 转化格式, 并提取出小时, 星期几, 月份

bike["datetime"] = pd.to_datetime(bike["datetime"])

bike["date"] = bike.datetime.dt.date

bike["year"]=bike.datetime.dt.year

bike["month"] = bike.datetime.dt.month#月份

bike["year_month"] = bike.datetime.dt.strftime("%Y-%m")

bike["week"] = bike.datetime.dt.dayofweek#周几#0为周一,6为周日

bike["hour"] = bike.datetime.dt.hour#时间

四、处理完成文件保存

四、处理完成文件保存

#1.保存为CSV格式

tb.to_csv("tb_user.csv",index = False)

五、数据统计计算

五、数据统计计算

#表关联[.merge(表1,表2,on=共同列,how=左连接)]

order_products_train= pd.merge(order_products_train,orders,on="order_id", how="left")

#计算

# 查看有多少个用户-去重计算

tb.drop_duplicates("user_id").count()

#查看列中不同值出现几次

a=tb["user_id"].value_counts()

#groupby 分组计算

#reset_index()重置索引

mcount=order_products_train[["department","count"]].groupby(["department"]).count().reset_index()

#定义列名/索引名

mcount.columns=["department","count"]

#.sort_values(by=根据什么排序,ascending=FALSE 逆序)

mcount=mcount.sort_values(by="count",ascending=False)

#数据透视表

w=bike.groupby(["week", "hour"])["count"].sum().reset_index()

when = w.pivot("week", "hour", "count")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值