幸福指数与GDP线性拟合

el/2024/5/23 4:18:18

数据来源:
去到 https://stats.oecd.org/index.aspx?DataSetCode=BLI 下载数据,命名为BLI.csv 储存到notebook 创建的第一个项目相同的路径
去 http://goo.gl/j1MSKe 下载2015世界各国人均GDP数据,命名为WEO_Data.xls, 储存到相同路径
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果为bool值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import sklearn# Load the data
oecd_bli = pd.read_csv("BLI.csv", thousands=',') #导入幸福指数文件,thousand是指若出现1000以上的数据去掉数字中的逗号,只保留数字
gdp_per_capita = pd.read_csv("gdp.csv",thousands=',',delimiter='\t',encoding='latin1', na_values="n/a") 
#读取gdp数据,delimiter意为以制表符为分割,encoding指定编码方式,na_value读取到数据时,格式改为dataform中的na格式
oecd_bli.head() #将载入的幸福指数展现出来def prepare_country_stats(oecd_bli, gdp_per_capita):oecd_bli = oecd_bli[oecd_bli["INEQUALITY"]=="TOT"]#取列名称为INEQUALITY里面元素为TOT那一行所有的元素oecd_bli = oecd_bli.pivot(index="Country",columns="Indicator",value="Value")print(oecd_bli.head(1))gdp_per_capite.rename(columns={"2015":"GDP per capita"},inplace=True)#将2015列名改为GDP per capita,inplace=true表示在原来的数据中修改,若等于false则会有一个返回值gdp_per_capite.set_index("Country",inplace=True)#country列变成一个索引的形式full_country_stats = pd.merge(left=oecd_bli,right=gdp_per_capite,left_index=True,right_index=True)#merge连接函数,以country为媒介,left取oecd_bli,right同理取gdp_per_capite,index=true表示都保留原来的indexfull_country_stats.sort_values(by="GDP per capita",inplace=True)#根据GDP per capita的值进行排序,默认从小到大排列remove_indices = [0,1,6,8,33,34,35]#移除空的索引keep_indices = list(set(range(36)) - set(remove_indices))#前36个国家里面减去空的索引return full_country_stats[["GDP per capita",'Life satisfaction']].iloc[keep_indices]#iloc切片,保留下来两列数据# Prepare the data
country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)
#调用函数
X = np.c_[country_stats["GDP per capita"]]
y = np.c_[country_stats["Life satisfaction"]]
#np.c_把数据中这一列转化称为numpy底下的array形式# Visualize the data
country_stats.plot(kind='scatter', x="GDP per capita", y='Life satisfaction')
plt.show()
#画散点图# Select a linear model
from sklearn import linear_model
lin_reg_model = sklearn.linear_model.LinearRegression()
#引用模型,一个实例# Train the model
lin_reg_model.fit(X, y)# Make a prediction for Cyprus
X_new = [[22587]] # Cyprus' GDP per capita
print(lin_reg_model.predict(X_new)) # outputs [[ 5.96242338]]
#用新的二维数组进行预测

连接结果
在这里插入图片描述
sort函数
在这里插入图片描述
如果直接拿的话,格式不是一个矩阵类型
在这里插入图片描述
但对它进行操作之后
在这里插入图片描述


http://www.ngui.cc/el/4423617.html

相关文章

sklearn框架结构

pip install sklearn 新建一个文件夹 在这个文件底下再建六个文件

KNN算法入门

K近邻算法:nearest neighbors classification 数据

KNN参数cross_val_score调参

什么是交叉式验证? 这样所有的数据都进行了验证,所有的数据也都进行了训练,训练了五次也测试了五次,将这五次得到的数据求一个平均值,这样的数据更有说服力 全部代码 #导包,加载数据import numpy …

载入显示保存图片

import cv2 import matplotlib.pyplot as pltimage cv2.imread(jianghe.jpeg) print("width: %d pixels" % (image.shape[1])) #图片的宽度、高度以及图片的通道数 print("height: %d pixels" % (image.shape[0])) print("channels: %d pixels"…

画图功能的实现

import numpy as np import cv2 import matplotlib.pyplot as pltdef show(image):plt.imshow(image)plt.axis(off)plt.show()image np.zeros((300,300,3),dtypeuint8) #可以看成一张图片,三通道的、长宽为300*300,里面像素全为0show(image)#显示图片#画…

图像平移功能的实现

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

图像旋转放大缩小

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

resize图片形状大小

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

翻转+裁剪+图像算数

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…