大数据基础-数据整理

"""
修改记录:
    1.整体修改,通过df[列名]=值,用值来整体替换df[列]的值
    2.个别修改:
           2.1单只替换:命令格式为:df.repalce('B','A')表示用A值替换B值
           2.2指定列值替换:命令格式为:df.replace({'列名 C','A'},B),表示用B值来替换列名为C中的A的值
           2.3多值替换:命令格式为df.replace([A,B,C.....],[E,F,G.....]),表示用E,F,G.....来替换A,B,C.....的值
A,B,C.....
"""
from pandas import read_excel
df=read_excel(r'i_nuc.xls',sheet_name='Sheet3');
print(df)
print('-------------------------');
# 全部替换;用0表示数据中缺考成绩
df1=df.replace('缺考',0);
print(df1)
print('------------------------')
#单值替换,用hello 来替换数据中体育成绩中的作弊分数
df2=df.replace({'体育':'作弊'},'hello')
print(df2)
print('-----------------------')
#多值替换,将缺考替换成为hello,将作弊替换成world
df3=df.replace(['缺考','作弊'],['hello','world']);
print(df3);
print('***********************')

'''
交换行与列:
    可以使用df。redinex方法来交换数据中的行或列的数据
'''
import pandas as pd
df=pd.DataFrame({'a':[1,2,3],'b':['hello','world','python'],'c':['bei','fang','mingzu']})
print(df);
print('--------------------------------------')
# 交换行
hang=[0,2,1];
df1=df.reindex(hang);
print(df1);
print('-------------------------------------')
# 交换列
lie=['a','c','b']
df2=df.reindex(columns=lie);
print(df2);
# 还可以通过loc的相关语法对数据进行交换
df3=df
df3.loc[[0,2],:]=df3.loc[[2,0],:]#将第一行与第三行的数据进行交换
print(df3);
print('----------------------------')
df4=df
df4.loc[:,['b','a']]=df4.loc[:,['a','b']];
print(df4);
'''
通过交换列,行的方法可以实现插入一个列的数据
    1、新增一个列
    2、交换这两列的值
    3、交换这两列的列名
'''
print('---------------------------')
df['d']=range(len(df.index))
print(df);
print('--------------------------')
# 交换值
df.loc[:,['b','d']]=df.loc[:,['d','b']].values
print(df)
# 交换列名
Lie=list(df.columns)
# 获取列名的index
i=Lie.index('b');
j=Lie.index('d');

print(Lie);
print(i,j)
# 交换两个index
Lie[i],Lie[j]=Lie[j],Lie[i];
# 重新赋值
df.columns=Lie
print(df);
"""
排名索引:
    简单的数据计算:通过各个字段对数据进行加减乘除的操作,得出新的字段
    
"""
from pandas import read_excel
df=read_excel(r'i_nuc.xls',sheet_name='Sheet3')
print('------------------------')
jianji=df['解几'].astype(int);
gaodai=df['高代'].astype(int);
print(jianji)
print(gaodai)
print('------------------------')
df['高代+解几']=jianji+gaodai;
print(df)
print('-----------------------')
"""
数据标准化,也成为数据归一化。为了消除指标之间的量纲的影响,需要进行数据的标准化处理,以解决数据之间的可比性。
    数据标准化的常用方法:
        1.min-max标准化,公式为:X=(x-min)/(max-min);其中min为最小值,max为数据的最大值
"""
from pandas import read_excel
df=read_excel(r'i_nuc.xls',sheet_name='Sheet3')
print(df['数分'].astype(int))
print('-----------------------')
scale=(df['数分'].astype(int)-df['数分'].astype(int).min())/(df['数分'].astype(int).max()-df['数分'].astype(int).min())
print(scale)
print('-----------------------')
"""
Z-score标准化方法,适用于数据中的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况,其公式为
        X=(x-u)/&,其中u表示均值,&表示标准差
        使用sklearn.preprocessing.scale()函数,可以直接将给定的数据进行标准化
"""
from sklearn import preprocessing
df1=df['数分']
print(df1)
print('------------------------')
sf_score=preprocessing.scale(df1);
print(sf_score)
print('------------------------')
"""
数据分组:就是根据数据分析对象的特征,按照一定的指标,将数据化分为不同的区间进行研究
        其中的命令为:cut(series,bins,right=True,labels=NULL)
        其中series表示分组的数据
        bins表示分组的依据的数据
        right表示分组的时候右边是否闭合
        labels表示自定义标签,可以不自定义
"""
from pandas import read_excel
import pandas as pd
df=read_excel(r'rz.xlsx')
print('----------------------------')
print(df.head());
bins=[min(df['解几'])-1,60,70,80,max(df['解几'])+1]#划分的标准
lab=['不及格','及格','良好','优秀'];
demo=pd.cut(df['解几'],right=False,bins=bins,labels=lab);
print(demo);
df['demo']=demo;
print(df);


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值