pandas 中DataFrame使用:数据标准化、数据分组、日期转换、日期格式化、日期抽取

转自:https://blog.csdn.net/meiqi0538/article/details/82558000

1数据标准化

将数据按比例缩放,使之落入到特定区间,一般我们使用0-1标准化。公式如下:

X∗=x−minmax−minX∗=x−minmax−min

#导包
import pandas;
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data13.csv")

scale=(df.score-df.score.min())/(df.score.max()-df.score.min())

数据计算前后对比 
这里写图片描述

这里写图片描述

2 数据分组

根据数据分析对象的特征,按照一定数值指标,把数据分析对象划分为不同的区间部分来进行研究,以揭示其内在的联系和规律性。这里我们可以使用cut函数,cut(series,bins,right=True,labels=NULL),其中:

series:需要分组的数据

bins:分组的划分数组

right:分组的时候,右边是否闭合

labels:分组的自定义标签,可以不自定义

#导包
import pandas;
from pandas import read_csv

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data14.csv",sep="|")

bins=[min(df.cost)-1,20,40,60,80,100,max(df.cost)+1]

labels=['20以下','20到40','40到60','60到80','80到100','100以上']

result=pandas.cut(df.cost,bins=bins,right=False,labels=labels)

数据处理前后对比:

这里写图片描述

这里写图片描述

将对应的数据进行了标注。

3 日期转换

将字符型的日期格式的数据,转换成日期型数据的过程,使用date=to_datetime(dateString,format)

属性注释
%Y代表年份
%m代表月份
%d代表日期
%H代表小时
%M代表分钟
%S代表秒
#导包
from pandas import read_csv
from pandas import to_datetime

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data15.csv",encoding='utf8')

df_dt=to_datetime(df.注册时间,format="%Y/%m/%d")

数据处理前后对照

这里写图片描述

这里写图片描述

4日期格式化

将日期型的数据,按照给定的格式,转为字符型的数据。日期格式化函数:apply(lambda x:处理逻辑),datetime.strftime(x,format) ,这里的format与时间转化相同。

#导包
from pandas import read_csv
from pandas import to_datetime
from datetime import datetime

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data16.csv",encoding='utf8')

df_dt=to_datetime(df.注册时间,format="%Y/%m/%d")

df_dt_str=df_dt.apply(lambda x: datetime.strftime(x,"%d-%m-%Y"))

时间转换前后对比

这里写图片描述

5日期抽取

从日期格式里,抽取出需要的部分属性。使用的发函数:datetime列.dt.property

属性注释
second1-60:秒,从1开始,到60
minute1-60:分钟,从1开始,到60
hour1-24:小时,从1开始,到24
day1-31:一个月中的第几天,从1开始,最大31
month1-12:月份,从1开始,到12
year年份
weekday1-7:一周中的第几天,从1开始,最大为7
#导包
from pandas import read_csv
from pandas import to_datetime

df=read_csv(r"C:\Users\JackPi\Desktop\pandas\data\data17.csv",encoding='utf8')

df_dt=to_datetime(df.注册时间,format="%Y/%m/%d")

s_y=df_dt.dt.year
s_s=df_dt.dt.second
s_m=df_dt.dt.minute
s_h=df_dt.dt.hour
s_d=df_dt.dt.day
s_M=df_dt.dt.month
s_w=df_dt.dt.weekday

原始数据,转换数据对比

这里写图片描述

这里写图片描述

  • 29
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值