数学建模之python-数据挖掘与预处理

前言

调库的列名都变了 推荐手写版
修改列名的方法:
在这里插入图片描述
在这里插入图片描述

0.5 pandas读取文件

1.header=0 加不加都一样
在这里插入图片描述
2.但如果加了header=None
在这里插入图片描述
3. 如果数据本来有列名,则忽略header这个参数即可,如果本身没有列名,或者有但是想替换,用names替换
在这里插入图片描述
4.很关键 关于将第一列作为行索引(不然 还会多出来一列):
在这里插入图片描述
5.保存文件时 columns可以指定存入的子集,index=False和header=False,是指不存入行索引和列索引

df=pd.read_excel("第一题数据.xlsx",index_col=[0])
print(df)
from sklearn import  preprocessing
df['信誉评级']=df['信誉评级'].apply(lambda x:1 if x=='A' else (0.75 if x=='B' else(0.5 if x=='C' else 0.25))  )
# '''step3 数据预处理'''
# #数据标准化,消除特征量纲的影响
# #将属性缩放到一个指定范围,即(x-min)/(max-min)
# # print(df)
scaler = preprocessing.MinMaxScaler()
z_data = pd.DataFrame(scaler.fit_transform(df))
print(z_data)
z_data.columns=[list('abcd')]
z_data.to_csv('data1.csv', encoding='gbk',index=False)

在这里插入图片描述

1 z-score和01标准化的代码如下:

01标准化调库代码(最好用-df就是用pandas读取的文件):

scaler = preprocessing.MinMaxScaler()
z_data = pd.DataFrame(scaler.fit_transform(df))
print(z_data)

在这里插入图片描述

01标准化手写代码(跟调库一样好用 没区别)

df2=pd.read_csv("熵值法.csv")
df2=df2.apply(lambda x:((x-np.min(x))/(np.max(x)-np.min(x))))

z-score调库代码

scaler =preprocessing.StandardScaler().fit(df2)
df2=scaler.transform(df2)
z_data2 = pd.DataFrame(df2)

在这里插入图片描述

z-score标准化手写代码(列名没变 调库的列名都变成1234了):

df2=(df2.iloc[:,0:]-df2.mean())/df2.std()
print(df2)

z-score单列标准化

from sklearn.preprocessing import scale
df['增值税']=scale(df['增值税'].values.reshape(-1,1))

2.多文件合并

在这里插入图片描述

3.查看数据

在这里插入图片描述

4.判断列有无缺失值

axis好文:
https://blog.csdn.net/leilei7407/article/details/104461215?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162987388116780366539508%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162987388116780366539508&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-104461215.first_rank_v2_pc_rank_v29&utm_term=axis%3D0&spm=1018.2226.3001.4187
在这里插入图片描述
判断每一行的缺失值
在这里插入图片描述
缺失值定位到每一行
在这里插入图片描述
各变量缺失的值
在这里插入图片描述
直接删除空值对应所在行
在这里插入图片描述
定义缺失值为0
在这里插入图片描述
ps:fillna填充好文:
https://blog.csdn.net/qq_21840201/article/details/81008566?ops_request_misc=&request_id=&biz_id=102&utm_term=fillna%E4%B8%ADinplace=false&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-5-.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187
ps:关于inplace的好文:
https://blog.csdn.net/songyunli1111/article/details/82937954?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162843431116780274199115%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162843431116780274199115&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-82937954.first_rank_v2_pc_rank_v29&utm_term=pandas%E4%B8%ADinplace%3Dfalse&spm=1018.2226.3001.4187
多种方式填充缺失值:
在这里插入图片描述

增加索引
在这里插入图片描述

5.删除特定的行或列

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

6.数据排序:

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

7.数据汇总

在这里插入图片描述
重新以列表的情况输出
在这里插入图片描述

8.两表筛选:

df1=pd.read_excel("会员消费明细表.xlsx")
df2=pd.read_excel("会员信息表.xlsx")
df1_=df1[df1['kh'].isin(df2["kh"])]
print("筛选后的消费信息表:\n",df1_.head(5),"\n 大小:",df1_.size)
print("\n原始的:\n",df1.head(5),"\n 大小:",df1.size)

在这里插入图片描述

9.将日期转化格式:

在这里插入图片描述

df['dtime']=pd.to_datetime(df['dtime'])
print(df)
#删除指定行
df=df.drop(df.index[(df['dtime']<'2017-01-03 21:27:28.686000')])

参考pandas文章:https://blog.csdn.net/cindy407/article/details/90747049?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!针对2023全国大学生数学建模比赛的C题数据预处理,我可以为你提供一些常见的方法和步骤。请注意,以下是一般性的建议,具体处理方式可能需要根据数据的具体特点和要求进行调整。 1. 数据导入:将原始数据导入到一个适合的数据分析环境中,例如Python的pandas库或者R语言。确保数据的格式正确,并对缺失值进行处理。 2. 数据清洗:删除不需要的列或者行,根据任务需求进行筛选和过滤。如果有重复数据,则进行去重操作。 3. 数据转换:将需要处理的数据进行转换,例如将文本型数据转换为数值型数据,或者进行单位转换等。 4. 缺失值处理:对于存在缺失值的数据,可以选择删除含有缺失值的行或者列,或者使用插补方法填充缺失值。 5. 异常值处理:检查数据是否存在异常值,如极大值、极小值或者超出合理范围的数值。可以选择删除异常值或者通过插补等方法进行处理。 6. 数据归一化:对于不同量纲的数据,可以进行归一化处理,使得不同特征具有可比性。 7. 特征工程:根据问题需求和业务背景,对原始数据进行特征构建和选择,可以使用统计学方法、数据挖掘技术或者领域知识。 8. 数据可视化:通过绘制图表,对数据进行可视化分析,探索数据的分布、变化趋势和相关关系。这有助于进一步理解数据。 9. 数据分割:根据建模需求,将数据集划分为训练集、验证集和测试集等,以便进行模型训练和评估。 以上是一般性的数据预处理步骤,具体实施时需要根据具体情况进行调整和选择。希望对你有所帮助!如果你有更具体的问题或者需要进一步的指导,请告诉我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值