python csv数据处理将类型数据改变为数字_python数据计算

1fdf8835e1dfb3b5f896a1fdecc38fad.png

python数据计算

  • 简单计算

数据准备

#数据计算#简单计算#数据准备import pandas as pddf=pd.read_csv('d:/python/out/datatime.csv',encoding='utf8')df
#简单计算import pandas as pddf=pd.read_csv('d:/python/out/datatime.csv',encoding='utf8')df['total']=df.price*df.numdf.to_csv('d:/python/out/datatime_out.csv')df
  • 时间计算

数据准备

#时间计算数据准备import pandas as pddf=pd.read_csv('d:/python/out/timedate.csv',encoding='utf8')df
#时间计算import pandas as pddf=pd.read_csv('d:/python/out/timedate.csv',encoding='utf8')#先将字符串的注册时间列,转换成时间类型df['时间']=pd.to_datetime(df.注册时间,format='%Y/%m/%d')#从datetime模块中,引入datetime时间类型,构造函数from datetime import datetime#注册时间=当前时间-注册时间df['注册天数']=datetime.now()-df['时间']df.to_csv('d:/python/out/timedate628_out.csv')df
#时间计算import pandas as pddf=pd.read_csv('d:/python/out/timedate.csv',encoding='utf8')#先将字符串的注册时间列,转换成时间类型df['时间']=pd.to_datetime(df.注册时间,format='%Y/%m/%d')#从datetime模块中,引入datetime时间类型,构造函数from datetime import datetime#注册时间=当前时间-注册时间df['注册天数']=datetime.now()-df['时间']#将时间间隔的数据类型简化,只保留天数df['注册天数']=df['注册天数'].dt.daysdf.to_csv('d:/python/out/timedate628a_out.csv')df
  • 数据标准化

数据准备

#数据标准化#数据准备import pandas as pddf=pd.read_csv('d:/python/out/round.csv',encoding='utf8')df
#数据标准化import pandas as pddf=pd.read_csv('d:/python/out/round.csv',encoding='utf8')df['消费']=round((df.消费-df.消费.min())/(df.消费.max()-df.消费.min()),2)df.to_csv('d:/python/out/round_out.csv')df
  • 数据分组

数据准备

数据分组

#数据准备import pandas as pddf=pd.read_csv('d:/python/out/cut.csv',encoding='utf8')df
#确认cost列中最小值import pandas as pddf=pd.read_csv('d:/python/out/cut.csv',encoding='utf8')df.cost.min()
#确认cost列中最大值import pandas as pddf=pd.read_csv('d:/python/out/cut.csv',encoding='utf8')df.cost.max()

分组的数组

#分组的数组import pandas as pddf=pd.read_csv('d:/python/out/cut.csv',encoding='utf8')#cut函数分段区间默认为左开放、右封闭,但cost列中最小值为2#最大值为100,组距20#为了分组后各区间整齐一致,并且包含2-100内的所有数值#设置bins参数列表的最小值为0,最大值为100bins=[0,20,40,60,80,100]df['cut']=pd.cut(df.cost,bins)df.to_csv('d:/python/out/cut628a_out.csv')df

区间的闭合

#区间闭合import pandas as pddf=pd.read_csv('d:/python/out/cut.csv',encoding='utf8')#设置右区间为开放#需要考虑[2,100]内的100这个数字,将无法包含在[0,100)中#为了让100也落入到一个区间内,需要增加一个区间为[100,120)#120是在100的基础上增加步长20,目的是让区间能够数据整齐一致bins=[0,20,40,60,80,100,120]df['cut']=pd.cut(df.cost,bins,right=False)df.to_csv('d:/python/out/cut628b_out.csv')df

自定义标签

#自定义标签import pandas as pddf=pd.read_csv('d:/python/out/cut.csv',encoding='utf8')bins=[0,20,40,60,80,100,120]#设置自定义标签,定义的标签需要和区间个数及顺序都一一对应customLabels=['0到20','20到40','40到60','60到80','80到100','100到120']df['cut']=pd.cut(df.cost,bins,right=False,labels=customLabels)df.to_csv('d:/python/out/cut628c_out.csv')df

学习小结:

数据计算时根据原有的字段数据,采用简单计算、函数计算等方式得到新的字段数据,以便进行下一步数据处理或数据分析。

简单计算:通过对已有字段进行加、减、乘、除等运算;

时间计算:计算两个时间之间的距离天数。计算时间之前需要先导入datetime模块;

数据标准化:数据按比例缩放,使之落入特定区间,方便进行不同变量之间的对比分析;

数据分组:根据分析目的将数据类型数据进行等距或非等距地分组,这个过程也称为数据离散化,一般用于看数据分布情况,从而揭示其内在的联系或规律;

补充:字符串split和rsplit的方法

通过工作需求实际案例总结字符串split和rsplit方法

a261ed54aeb580e7b68c960d56a4c939.png

str="hello  web"str.split("[")[1].rsplit("]")[0]
#字符串split和rsplit的方法import pandas as pddf=pd.read_excel('d:/python/out/628.xlsx',encoding='utf8')df_split=df['ROUTEINFO'].str.split('/',2,True)[2]#2代表返回正向分割2次;[2]并取序列为2的项df['ROUTEINFO']=df_split.str.rsplit('/',2,True)[0]#2代表返回反向分割2次;[0]并取序列为0的项df.to_excel("d:/python/out/data13.xlsx",sheet_name='data',index=False)df
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>