数据科学与python——Pandas统计分析基础(数据堆叠+数据清洗)

Pandas统计分析基础数据堆叠+数据清洗

  • 一.合并数据:获取完整的数据集。
    • 1.读取数据
    • 2.将两个csv文件按照mete.csv文件的日期对齐
    • 3.纵向合并数据data1与data2
    • 4.使用drop_duplicates()函数去除重复值
  • 二.异常值处理:去除data3中GPP中的异常点
    • 1.根据3σ原则检测异常值,去除异常点记录
  • 三.3 对GPP进行神经网络建模
    • 1.划分数据集
      • 手动划分
      • 随机划分
    • 数据标准化处理
  • 增加新的一列来存储数据

数据:
链接:https://pan.baidu.com/s/1-E2ShVTdI0X5lwDtMLFFsQ
提取码:0929

一.合并数据:获取完整的数据集。

1.读取数据

#数据所在的文件
metepath='./part/mete10-14.csv'
vipath='./part/vi10-14.csv'
# 读取数据
data_mete=pd.read_csv(metepath)
data_vi=pd.read_csv(vipath)

2.将两个csv文件按照mete.csv文件的日期对齐

按日期行向合并part文件夹下的两个csv,这两个文件日期范围不同,按照mete.csv文件的日期对齐;合并后的数据命名为data1

# 按日期行向合并part文件夹下的两个csv,按照mete.csv文件的日期对齐;
# <br/>合并后的数据命名为data1;
# <br/>若合并后的数据中有无效值,则使用无效值其所在列的平均值填充。
data1=pd.merge(data_mete,data_vi,on='Date',how='left')
data1['Date']=pd.to_datetime(data1['Date'])
data1=data1.fillna({'NDVI':np.mean(data1['NDVI']),'EVI':np.mean(data1['EVI'])})

3.纵向合并数据data1与data2

# 读取comb下面的csv文件,命名为data2;
# <br/>纵向堆叠合并data1和data2;
# <br/>堆叠之后需要去除重复数据;得到的数据命名为data3。
combpath='./comb/data04-10.csv'
data2=pd.read_csv(combpath)
#将日期转化为标准日期格式
data2['Date']=pd.to_datetime(data2['Date'])#纵向堆叠合并data1和data2
data3=pd.concat([data1,data2],axis=0)
data3['Date']=pd.to_datetime(data3['Date'])

4.使用drop_duplicates()函数去除重复值

去除重复值并且按照日期重新排序

#data1和data2中具有重复的数据,堆叠之后需要去除重复数据;这一步得到的数据命名为data3
data3=data3.drop_duplicates()
#更改数据的排序方式按照日期从小到大排
data3.sort_values(by = 'Date',inplace=True)

二.异常值处理:去除data3中GPP中的异常点

1.根据3σ原则检测异常值,去除异常点记录

# 根据3σ原则检测GPP中的异常值,从data3中去除异常点记录
#数值分布在(μ-3σ,μ+3σ)中的概率为0.9974
#可以认为,Y 的取值几乎全部集中在(μ-3σ,μ+3σ)]区间内,超出这个范围的可能性仅占不到0.3%。
print('去除异常值')
gpp_max=data3['GPP'].mean()+3*data3['GPP'].std()
gpp_min=data3['GPP'].mean()-3*data3['GPP'].std()
data3=data3.loc[(data3['GPP']>gpp_min)&(data3['GPP']<gpp_max),: ]

三.3 对GPP进行神经网络建模

使用2010年及以前的数据作为训练集,2010年以后的数据作为测试集,使用训练数据训练模型,测试数据仅用于测试模型
将TA、VPD、RG、NDVI、EVI列作为特征(输入),将GPP列作为标签(输出)

1.划分数据集

手动划分

train=data3.loc[data3['Date'].dt.year<=2010].copy()
test=data3.loc[data3['Date'].dt.year>2010].copy()
x_train=train[['TA','VPD','RG','NDVI','EVI']]
y_train=train[['GPP']]
x_test=test[['TA','VPD','RG','NDVI','EVI']]
y_test=test[['GPP']]

随机划分


from sklearn.model_selection import train_test_split #在机器学习中,该函数可按照用户设定的比例,#随机将样本集合划分为训练集 和测试集,#并返回划分好的训练集和测试集数据

数据标准化处理

建模之前要对所有输入数据标准化,标准化方式使用标准差标准化;两个数据集的标准化过程中均使用训练集变量的平均值和方差

#(3)	建模之前要对所有输入数据标准化,标准化方式使用标准差标准化;两个数据集的标准化过程中均使用训练集变量的平均值和方差
from sklearn.preprocessing import StandardScaler
# 将训练集和测试集数据进行标准差标准化
scaler=StandardScaler()
x_tr=scaler.fit_transform(x_train.values)
y_tr=scaler.fit_transform(y_train.values.reshape(-1,1)).ravel()
x_te=scaler.fit_transform(x_test.values)
y_te=scaler.fit_transform(y_test.values.reshape(-1,1)).ravel()

增加新的一列来存储数据

#对处于不同气温区间的数据进行标记
#(1)	将气温划分成4个级别:very_low, low, normal, high;他们的温度范围为
#增加新一列为温度的水平
test.loc[(test['TA']>-10) &(test['TA']<=0),'TA_Level']='very_low'
test.loc[(test['TA']>0) &(test['TA']<=10),'TA_Level']='low'
test.loc[(test['TA']>10) &(test['TA']<=20),'TA_Level']='normal'
test.loc[(test['TA']>20) &(test['TA']<=30),'TA_Level']='high'
train.to_csv('test6_train.csv',index=False)
test.to_csv('test6_test.csv',index=False)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 为什么动态语言图片_聊聊动态语言那些事(Python)

动态编程语言是高级程序设计语言的一个类别&#xff0c;在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言&#xff1a;例如新的函数、对象、甚至代码可以被引进&#xff0c;已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力&#xff0…

容器的那点事

当我们的后端服务器不够用的时候&#xff0c;我们可以通过容器技术&#xff0c;可以快速的把这些服务器全部虚拟出来&#xff0c; 当然这个虚拟跟虚拟机是不一样的&#xff0c;比虚拟机的方式快多了&#xff0c;早期阿里的淘宝平台如果整个坏掉了&#xff0c;重新搭建部署起来需…

lqb——修改数组

思路 **常规思路用哈希表的思想,设置bool数组标识是否被占用过,但是发生矛盾时将会造成查找需要遍历整个数组,比如,1,2,3……100000已连续占用,此时再插入1,将会一直遍历这100000个数,极端情况下,插入100000个1,将是n平方的复杂度。 如何快速查找到插入位置,这就引…

bp神经网络训练_数据分析模型6——神经网络基础(人工智能的底层模型)

未经许可请勿转载更多数据分析内容参看这里今天我们来学习人工智能的底层模型——神经网络&#xff08;NEURAL NETWORKS&#xff09;&#xff0c;现在比较热门的一个模型是深度学习&#xff0c;深度学习的基础也是神经网络&#xff0c;要学好深度学习&#xff0c;神经网络不了解…

四种最令人讨厌的编程语言:Java、Javascript、C++和Perl

喜欢就关注我们吧&#xff01;TIOBE 12 月榜单已于日前公布&#xff0c;在最新的排行榜中&#xff0c;C 语言仍高居榜首&#xff0c;其次分别是 Java、Python 和 C。在编程语言这一领域中&#xff0c;许多编程语言都会随着时间的推移而经历人气的激增&#xff0c;以及历史迭代之…

机器学习之数据预处理——特征编码(标签编码,独热编码)

机器学习之数据预处理——特征编码 数据预处理——特征编码离散数据的编码标签编码sklearn LabelEncoder(使用fit_transform函数)sklearn LabelEncoder(反向变换可以用函数 inverse_transform)独热编码sklearn OneHotEncoder机器学习里有一句名言:数据和特征决定了机器学习的上…

微软用的工具,统一财务三大表及高级分析通用模板

虽然罗叔并非财务专业&#xff0c;但大概了解一些财务常识。例如财务报表的三大报表以及一些常见分析等。本月《BI真经》视频课程即将就绪&#xff0c;后续罗叔将和大家开展更多的业务研究。我们知道&#xff0c;PowerBI 在绘制某些报告时候很难&#xff0c;初学者根本无法实现…

文件 单片机_如何查看你写的单片机程序有多大?

单片机我们都用过&#xff0c;我们知道单片机的FLASH有4K的&#xff0c;有8K的&#xff0c;单片机程序我们也写过&#xff0c;但是我们写好的程序有多大&#xff0c;你知道吗&#xff1f;程序写好并编译后生成hex文件&#xff0c;这个hex文件就是要下载到单片机里的文件&#x…

机器学习之数据预处理——数据清洗(缺失值、异常值和重复值的处理)

机器学习之数据预处理——数据清洗缺失值、异常值和重复值的处理 基础知识技术点总结数据列缺失的处理方法1、丢弃(缺失值处理)1、生成一份随机数据2、查看哪些值缺失3、获得含有NA的列4、获取全部为NA的列5、丢弃缺失值2、补全(缺失值处理)1、使用sklearn将缺失值替换为特…

小说中场景的功能_如何让你的小说中的场景转换自如?

很多人很头疼场景、时间转换要怎么办&#xff0c;可以用章节作为转换的过渡&#xff0c;那么章节内呢&#xff1f;我看到最普通的做法就是画分割线&#xff0c;殊不知这种做法在稍微有点阅读功底的读者眼中都是很……怎么说&#xff0c;很没品吗&#xff1f;嗯&#xff0c;或许…

夏虫不可语冰

此次事件让我再次体会到了什么是“夏虫不可语冰”。博客园有些人压根没看完你的文章&#xff0c;带着已有认知断章取义不暇思索上来就是喷。不过&#xff0c;以前也遇到过&#xff0c;现在也慢慢习惯了。对于托管堆内存泄漏的说法&#xff0c;不管认不认同&#xff0c;我还是希…

机器学习之数据预处理——归一化,标准化

机器学习之数据预处理——归一化,标准化 基础知识1.什么是特征预处理2.预处理方法 :3.预处理API:数据的标准化(normalization)和归一化数据的标准化数据归一化1 把数变为(0,1)之间的小数2 把有量纲表达式变为无量纲表达式常用归一化方法最大-最小标准化(MinMaxScaler)Z-s…

css less 不要作用到子对象_使用Less实现网站主题切换

v-easy-components change theme很多初学前端的开发同学一定有一种想法&#xff0c;就是如何更改网站的主题。前年&#xff08;2018&#xff09;&#xff0c;我也陷入了思考&#xff0c;如何切换网站主题呢&#xff1f;当时不知道less&#xff0c;只想到一种办法&#xff0c;就…

展望2021,Java、Go、.NET,谁主沉浮?

伴随着年底.NET社区活动&#xff0c;近日跟几位微软MVP大佬聊天请益&#xff0c;收获颇丰。程序员都有个话题避不开&#xff0c;就是各编程语言的优劣&#xff0c;大佬们的见识既有意思也有深度&#xff0c;这里为大家整理一下&#xff0c;其中Java、Golang和.NET是讨论焦点。J…

机器学习之数据集划分——训练集测试集划分,划分函数,估计器的使用

训练集测试集划分&#xff0c;划分函数&#xff0c;估计器的使用参考文章训练集、验证集和测试集的划分及交叉验证的讲解划分训练集和测试集的函数学习sklearn数据集&#xff0c;数据集划分&#xff0c;估计器详细讲解参考文章 训练集、验证集和测试集的划分及交叉验证的讲解 …

labuladong 的算法小抄_关于算法笔试的几个套路,一点就透

以下文章来源于labuladong &#xff0c;作者labuladong我知道各位是被标题吸引进来的&#xff0c;那就不废话&#xff0c;先说几个算法笔试的硬核套路&#xff0c;再说说语言选择和做题复习的策略。避实就虚大家也知道&#xff0c;大部分笔试题目都需要你自己来处理输入数据&am…

TVP两周年:携手同行,让未来可见

TVP两周年2018年12月15日&#xff0c;在北京的腾讯云社区开发者大会上&#xff0c;作为腾讯云构建开发者生态的重要战略&#xff0c;TVP计划正式发布。2020年12月15日&#xff0c;不知不觉&#xff0c;腾讯云TVP已经走过了两度春秋。从0到1的探索&#xff0c;1到10的成长&#…

机器学习日常练习——红楼梦作者分析(聚类)

红楼梦作者分析(聚类) 实验要求实验题目:《红楼梦》作者分析实验目的实验内容资料下载实验过程:问题分析:解决思路:代码:代码一:出现的问题文件编码问题将红楼梦数据,按照章节进行划分(使用到了正则表达式)数据进行标准化处理(最大最小标准化)使用了两种聚类方法(均…

加密封装 怎么把_不要再封装各种Util工具类了,这个神级框架值得拥有!

Hutool 谐音 “糊涂”&#xff0c;寓意追求 “万事都作糊涂观&#xff0c;无所谓失&#xff0c;无所谓得” 的境界。Hutool 是一个 Java 工具包&#xff0c;也只是一个工具包&#xff0c;它帮助我们简化每一行代码&#xff0c;减少每一个方法&#xff0c;让 Java 语言也可以 “…

Oh my God, Swagger API文档竟然可以这样写?

最好的总会在不经意间出现。“作为后端程序员&#xff0c;免不了与前端同事对接API&#xff0c; 一个书写良好的API设计文档可有效提高与前端对接的效率。为避免联调时来回撕逼&#xff0c;今天我们聊一聊正确编写Swaager API文档的姿势。基础Swagger用法在ConfigureServices配…