机器学习Pandas_learn4

import pandas as pddef calculate_goods_covariance():# 定义商品销售数据字典goods_sales_data = {"时期": ["一期", "二期", "三期", "四期"],"苹果": [15, 16, 3, 2],"橘子": [12, 14, 16, 18],"石榴": [11, 8, 7, 1]}# 将字典转换为DataFrame对象goods_dataframe = pd.DataFrame(goods_sales_data)# 选取数值列进行协方差计算numerical_columns = goods_dataframe.select_dtypes(include=['number'])# 计算商品销售数据的协方差矩阵covariance_matrix = numerical_columns.cov()return covariance_matrix# 调用函数计算协方差矩阵
result = calculate_goods_covariance()
# 打印协方差矩阵
print(result)
           苹果         橘子         石榴
苹果  56.666667 -17.333333  24.333333
橘子 -17.333333   6.666667 -10.333333
石榴  24.333333 -10.333333  17.583333
import pandas as pd# 示例数据
data = {'x': [1, 2, 3, 4, 5],'y': [5, 4, 3, 2, 1]
}
df = pd.DataFrame(data)
# 计算协方差
result = df['x'].cov(df['y'])
print("使用 Pandas 计算的协方差:", result)# 本人计算过程手动推导
# x的平均值等于 (1 + 2 + 3 + 4 + 5 ) / 5 = 3
# y的平均值等于 (5 + 4 + 3 + 2 + 1 ) / 5 = 3
# w =1-3)* (5-3) + (2-3) * (4-3) + (3-3) * (3-3) + (4-3) * (2-3) + (5-3) * (1-3)
# w/(n-1)  n = 5   
# ((1-3)* (5-3) + (2-3) * (4-3) + (3-3) * (3-3) + (4-3) * (2-3) + (5-3) * (1-3) ) /4
# => -2.5

样本协方差公式:
C o v ( X , Y ) = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) Cov(X,Y) = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y}) Cov(X,Y)=n11i=1n(xixˉ)(yiyˉ)

总体协方差公式:
C o v ( X , Y ) = 1 n ∑ i = 1 n ( x i − μ x ) ( y i − μ y ) Cov(X,Y) = \frac{1}{n} \sum_{i=1}^{n} (x_i - \mu_x)(y_i - \mu_y) Cov(X,Y)=n1i=1n(xiμx)(yiμy)

样本协方差公式

样本协方差是衡量两个变量之间相关性的统计量,其公式为:

s X Y = 1 n − 1 ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) s_{XY} = \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y}) sXY=n11i=1n(XiXˉ)(YiYˉ)

其中:

  • (X_i) 和 (Y_i) 是样本数据点。
  • (\bar{X}) 和 (\bar{Y}) 是样本 (X) 和 (Y) 的平均值。
  • (n) 是样本数据点的数量。
  • (s_{XY}) 是样本协方差。

样本协方差的意义:

  • 正协方差表示两个变量倾向于同方向变动。
  • 负协方差表示两个变量倾向于反方向变动。
  • 协方差接近零表示两个变量之间无线性相关关系。
from pandas import DataFrame
import numpy as np
paints={"时期":["一期","二期","三期","四期"],"苹果":[15,16,3,2],"橘子":[12,14,16,18],"石榴":[11,8,7,1]}
goods_in=DataFrame(paints)
numerical_columns = goods_in.select_dtypes(include=['number'])
goods_sum=numerical_columns.corr()
print(goods_sum)
          苹果        橘子        石榴
苹果  1.000000 -0.891793  0.770881
橘子 -0.891793  1.000000 -0.954411
石榴  0.770881 -0.954411  1.000000
from pandas import DataFrame
paints={"字画名称":["旭日东升","富水长流","招财进宝","鸿运当头"],"字画底价":[2860,498,1068,598],"字画拍卖加价":[1000,2000,500,1500]}
goods_in=DataFrame(paints,index=["第一幅","第二幅","第三幅","第四幅"])
goods_in.to_csv("paint.csv")
from pandas import DataFrame
import numpy as np
paints={"电话号码":["138xxxx1111","189xxxx1111","139xxxx1111","130xxxx1111","131xxxx1111"]}
goods_in=DataFrame(paints)
# 从电话号码中提取了前3位作为运营商前缀这个维度的数据。
goods_in["运营商前缀"]=goods_in["电话号码"].str.slice(0,3)
print(goods_in)
          电话号码 运营商前缀
0  138xxxx1111   138
1  189xxxx1111   189
2  139xxxx1111   139
3  130xxxx1111   130
4  131xxxx1111   131
import pandas as pd
from pandas import DataFrame
login={"会员Id":[110,111,112,113],"会员名称":["刘一","赵二","薛三","陆四"],"会员密码":["admin","123456","000000","888888"]}
info={"会员Id":[110,111,112,113],"会员地址":["北京朝阳","北京丰台","北京大兴","河北廊坊"],"会员会费":[250,360,470,550]}
login_member=DataFrame(login,index=[1,2,3,4])
member_info=DataFrame(info,index=[1,2,3,4])
member=pd.merge(login_member,member_info,on="会员Id")
print(member)# 代码中定义了会员的登录login_member的DataFrame,又定义了会
# 员信息member_info的DataFrame。这两个DataFrame通过“会员Id”实
# 现了一一对应的关系,通过merge()方法把两个DataFrame数据结构合
# 并,在合并时指明参数on的值是以“会员Id”这个维度作为参考的
   会员Id 会员名称    会员密码  会员地址  会员会费
0   110   刘一   admin  北京朝阳   250
1   111   赵二  123456  北京丰台   360
2   112   薛三  000000  北京大兴   470
3   113   陆四  888888  河北廊坊   550
import pandas as pd
from pandas import DataFrame
login={"会员Number号码":[110,111,112,113],"会员名称":["刘一","赵二","薛三","陆四"],"会员密码":["admin","123456","000000","888888"]}
info={"会员Card":[110,111,112,113],"会员地址":["北京朝阳","北京丰台","北京大兴","河北廊坊"],"会员会费":[250,360,470,550]}
login_member=DataFrame(login,index=[1,2,3,4])
member_info=DataFrame(info,index=[1,2,3,4])
member=pd.merge(login_member,member_info,left_on="会员Number号码",right_on="会员Card")
print(member)
   会员Number号码 会员名称    会员密码  会员Card  会员地址  会员会费
0         110   刘一   admin     110  北京朝阳   250
1         111   赵二  123456     111  北京丰台   360
2         112   薛三  000000     112  北京大兴   470
3         113   陆四  888888     113  河北廊坊   550
import pandas as pd
from pandas import DataFrame
login={"会员Number号码":[110,111,112,114],"会员名称":["刘一","赵二","薛三","陆四"],"会员密码":["admin","123456","000000","888888"]}
info={"会员Card":[110,111,112,113],"会员地址":["北京朝阳","北京丰台","北京大兴","河北廊坊"],"会员会费":[250,360,470,550]}
login_member=DataFrame(login,index=[1,2,3,4])
member_info=DataFrame(info,index=[1,2,3,4])
member=pd.merge(login_member,member_info,left_on="会员Number号码",right_on="会员""Card")
print(member)
   会员Number号码 会员名称    会员密码  会员Card  会员地址  会员会费
0         110   刘一   admin     110  北京朝阳   250
1         111   赵二  123456     111  北京丰台   360
2         112   薛三  000000     112  北京大兴   470

Cov ( X , Y ) = 1 n − 1 ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) \text{Cov}(X, Y) = \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y}) Cov(X,Y)=n11i=1n(XiXˉ)(YiYˉ)

import pandas as pd
from pandas import DataFrame
login={"会员Number号码":[110,111,112,114],"会员名称":["刘一","赵二","薛三","陆四"],"会员密码":["admin","123456","000000","888888"]}
info={"会员Card":[110,111,112,113],"会员地址":["北京朝阳","北京丰台","北京大兴","河北廊坊"],"会员会费":[250,360,470,550]}
login_member=DataFrame(login,index=[1,2,3,4])
member_info=DataFrame(info,index=[1,2,3,4])
member=pd.merge(login_member,member_info,left_on="会员Number号码",right_on="会员Card",how="outer")
print(member)
   会员Number号码 会员名称    会员密码  会员Card  会员地址   会员会费
0       110.0   刘一   admin   110.0  北京朝阳  250.0
1       111.0   赵二  123456   111.0  北京丰台  360.0
2       112.0   薛三  000000   112.0  北京大兴  470.0
3         NaN  NaN     NaN   113.0  河北廊坊  550.0
4       114.0   陆四  888888     NaN   NaN    NaN
import pandas as pd
from pandas import DataFrame
login={"会员名称":["刘一","赵二","薛三","陆四"],"会员密码":["admin","123456","000000","888888"]}
info={"会员地址":["北京朝阳","北京丰台","北京大兴","河北廊坊"],"会员会费":[250,360,470,550]}
login_member=DataFrame(login,index=[1,2,3,4])
member_info=DataFrame(info,index=[1,2,3,4])
member=pd.merge(login_member,member_info,left_index=True,right_index=True)
print(member)
  会员名称    会员密码  会员地址  会员会费
1   刘一   admin  北京朝阳   250
2   赵二  123456  北京丰台   360
3   薛三  000000  北京大兴   470
4   陆四  888888  河北廊坊   550
import pandas as pd
from pandas import DataFrame
login={"会员名称":["刘一","赵二","薛三","陆四"],"会员密码":["admin","123456","000000","888888"]}
info={"会员地址":["北京朝阳","北京丰台","北京大兴","河北廊坊"],"会员会费":[250,360,470,550]}
login_member=DataFrame(login,index=[1,2,3,5])
member_info=DataFrame(info,index=[1,2,3,4])
member=login_member.join(member_info)
print(member)
  会员名称    会员密码  会员地址   会员会费
1   刘一   admin  北京朝阳  250.0
2   赵二  123456  北京丰台  360.0
3   薛三  000000  北京大兴  470.0
5   陆四  888888   NaN    NaN
import pandas as pd
from pandas import Series
member1=Series([1,350],index=["会员级别","会员最低消费"])
member2=Series([2,100,10],index=["会员购买产品次数","会员卡最低存额","会员活动次数"])
member3=Series([2],index=["会员推荐人数"])
member=pd.concat([member1,member2,member3])
print(member)
会员级别          1
会员最低消费      350
会员购买产品次数      2
会员卡最低存额     100
会员活动次数       10
会员推荐人数        2
dtype: int64
import pandas as pd
from pandas import Series
member1=Series([1,350],index=["会员级别","会员最低消费"])
member2=Series([2,100,10],index=["会员购买产品次数","会员卡最低存额","会员活动次数"])
member3=Series([2],index=["会员推荐人数"])
member=pd.concat([member1,member2,member3],axis=1)
print(member)# 从结果上看,输出了DataFrame数据结构,这是由于传入axis=1,
# 结果就会变成一个DataFrame,其中的axis=1是列,没有数据的地方就
# 会显示NaN。concat()在这里也体现了并运算,把所有不同的维度连接
# 在了一起。在这种情况下,另外一条轴上没有重叠,从索引的有序并
# 集(外连接)上就可以看出来。
              0      1    2
会员级别        1.0    NaN  NaN
会员最低消费    350.0    NaN  NaN
会员购买产品次数    NaN    2.0  NaN
会员卡最低存额     NaN  100.0  NaN
会员活动次数      NaN   10.0  NaN
会员推荐人数      NaN    NaN  2.0
import pandas as pd
from pandas import Series
member1=Series([1,350],index=["会员级别","会员最低消费"])
member2=Series([1,100,10,2],index=["会员级别","会员卡最低存额","会员活动次数","会员推荐人数"])
member3=Series([1,350,2],index=["会员级别","会员最低消费","会员推荐人数"])
member=pd.concat([member1,member2,member3],axis=1,join="inner")
print(member)
      0  1  2
会员级别  1  1  1
# 代码中使用groupby()方法对“会员消费”与“会员级别”组成的
# DataFrame数据进行分组,分组参照的维度为“会员级别”。sum()方
# 法的作用是对分组之后的“会员消费”进行求和运算,旨在统计不同
# 的会员级别的消费情况import pandas as pd
from pandas import DataFrame
member=DataFrame({"会员级别":[1,2,5,3,1,1,2,5,2,3,1,1,2,3,5,4],"会员消费情况":[100,500,2500,1427,90,90,490,2498,486,1315,89,97,490,1489,2389,1900]})
member_group=member.groupby("会员级别").sum()
print(member_group)
      会员消费情况
会员级别        
1        466
2       1966
3       4231
4       1900
5       7387
import pandas as pd
from pandas import DataFrame
member=DataFrame({"会员级别":[1,2,5,3,1,1,2,5,2,3,1,1,2,3,5,4],"会员消费情况":[100,500,2500,1427,90,90,490,2498,486,1315,89,97,490,1489,2389,1900],"会员参与活动数目":[1,3,10,5,3,3,6,8,4,2,3,3,6,5,4,1]})
member_group=member.groupby(["会员级别","会员参与活动数目"]).sum()
print(member_group)
               会员消费情况
会员级别 会员参与活动数目        
1    1            1003            366
2    3            5004            4866            980
3    2           13155           2916
4    1           1900
5    4           23898           249810          2500
import pandas as pd
import numpy as np
from pandas import DataFrame
member=DataFrame({"会员级别":[1,2,5,3,1,1,2,5,2,3,1,1,2,3,5,4],"会员消费情况":[100,500,2500,1427,90,90,490,2498,486,1315,89,97,490,1489,2389,1900],"会员参与活动数目":[1,3,10,5,3,3,6,8,4,2,3,3,6,5,4,1]})
member_group=member.groupby("会员级别").agg([np.sum,np.mean,np.std])
print(member_group)
     会员消费情况                         会员参与活动数目                    sum         mean        std      sum      mean       std
会员级别                                                            
1       466    93.200000   4.969909       13  2.600000  0.894427
2      1966   491.500000   5.972158       19  4.750000  1.500000
3      4231  1410.333333  88.189191       12  4.000000  1.732051
4      1900  1900.000000        NaN        1  1.000000       NaN
5      7387  2462.333333  63.516402       22  7.333333  3.055050
# 代码中pivot_table后面的参数,第一个参数是需要进行透视表操
# 作的DataFrame数据,第二个参数是建立透视表时以“会员级别”维度
# 作为索引,第三个参数是统计的时候的运算方法,如是求和还是求平
# 均数等。这里是求和
import pandas as pd
import numpy as np
from pandas import DataFrame
member=DataFrame({"会员级别":[1,2,5,3,1,1,2,5,2,3,1,1,2,3,5,4],"会员消费情况":[100,500,2500,1427,90,90,490,2498,486,1315,89,97,490,1489,2389,1900],"会员参与活动数目":[1,3,10,5,3,3,6,8,4,2,3,3,6,5,4,1]})
member_table=pd.pivot_table(member,index=["会员级别"],aggfunc=
[np.sum])
print(member_table)
          sum       会员参与活动数目 会员消费情况
会员级别                
1          13    466
2          19   1966
3          12   4231
4           1   1900
5          22   7387

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

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

相关文章

优选算法系列(3.二分查找 )

目录 一.二分查找(easy) 题目链接:704. 二分查找 - 力扣(LeetCode) 解法: 代码: 二.在排序数组中查找元素的第⼀个和最后⼀个位置(medium) 题目链接:34.…

DAY36贪心算法Ⅴ

56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; class Solution { static bool cmp(vector<int>&a,vector<int>&b){return a[0] < b[0]; } public:vector<vector<int>> merge(vector<vector<int>>& intervals) {so…

阿里云服务器部署 五 Nginx + springboot

Nginx的部分配置 1. 基础容灾配置&#xff08;被动健康检查&#xff09; 在 upstream 块中&#xff0c;通过 max_fails 和 fail_timeout 参数定义故障转移规则&#xff1a; 在 upstream 块中&#xff0c;通过 max_fails 和 fail_timeout 参数定义故障转移规则&#xff1a;…

基于大模型的下颌前突畸形预测及治疗方案研究报告

目录 一、引言 1.1 研究背景 1.2 研究目的 1.3 研究意义 二、大模型技术原理与应用现状 2.1 大模型的基本原理 2.2 在医疗领域的应用案例 2.3 在下颌前突畸形研究中的可行性分析 三、下颌前突畸形概述 3.1 定义与分类 3.2 流行病学特征 3.3 病因与发病机制 3.4 对…

接口自动化测试框架详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛…

Day11 动态规划入门

动态规划 就是 : 给定一个问题&#xff0c;我们把它拆成一个个子问题&#xff0c;直到子问题可以直接解决。然后把子问题的答案保存起来&#xff0c;以减少重复计算。再根据子问题答案反推&#xff0c;得出原问题解的一种方法. 记忆化搜索 暴力dfs 记录答案 动态规划入门思…

[AI速读]用持续集成(CI)优化芯片验证环境:Jenkins与EDA工具的实战指南

在芯片验证中,回归测试(Regression Test)是确保设计稳定性的关键步骤。但随着设计复杂度增加,手动管理海量测试用例、分析日志和覆盖率数据变得异常耗时。本文将介绍如何利用持续集成(CI)工具Jenkins,结合EDA验证环境(如Cadence vManager),实现自动化测试与结果分析,…

深度解析:JavaScript变量声明的演变与核心差异(var/let/隐式声明)

深度解析&#xff1a;JavaScript变量声明的演变与核心差异&#xff08;var/let/隐式声明&#xff09; 一、JavaScript变量声明的演进史 JavaScript的变量声明机制经历了三个阶段演进&#xff1a; 原始阶段&#xff08;ES5及之前&#xff09;&#xff1a;仅 var 声明 隐式全局…

第2.1节:AWK脚本结构

1 第2.1节&#xff1a;AWK脚本结构 1.1 第1个awk脚本 假设有如下的数据待处理&#xff0c;需要将第2列提取出来&#xff1a; #, 名称, 大小, 类型, 修改, 属性 1, COMMIT_EDITMSG, 331 bytes, 文件, 24/09/16 08:42:19, -a----- 2, config, …

Win NAS 分享功能:精准、安全的内容共享

WinNAS 不仅是一款强大的 NAS服务&#xff0c;还通过耘想存储 APP 提供了便捷的内容分享功能。无论是与个人、群聊、朋友圈还是公众分享文件&#xff0c;WinNAS 都配备了严格的权限管理机制&#xff0c;确保您的数据安全且精准地传递给目标对象。以下是 WinNAS 分享功能的详细介…

C# 项目06-计算程序运行时间

实现需求 记录程序运行时间&#xff0c;当程序退出后&#xff0c;保存程序运行时间&#xff0c;等下次程序再次启动时&#xff0c;继续记录运行时间 运行环境 Visual Studio 2022 知识点 TimeSpan 表示时间间隔。两个日期之间的差异的 TimeSpan 对象 TimeSpan P_TimeSpa…

网络华为HCIA+HCIP NFV

目录 NFV关键技术&#xff1a;虚拟化 NFV关键技术&#xff1a;云化 NFV架构 NFV标准架构 ​编辑 NFV架构功能模块 NFV架构接口 NFV关键技术&#xff1a;虚拟化 在NFV的道路上&#xff0c;虚拟化是基础&#xff0c;云化是关键。传统电信网络中&#xff0c;各个网元都是…

SpringBoot实现异步调用的方法

在Java中使用Spring Boot实现异步请求和异步调用是一个常见的需求&#xff0c;可以提高应用程序的性能和响应能力。以下是实现这两种异步操作的基本方法&#xff1a; 一、异步请求&#xff08;Asynchronous Request&#xff09; 异步请求允许客户端发送请求后立即返回&#x…

xwiki自定义认证实现单点登录

xwiki支持自定义认证 继承XWikiAuthServiceImpl类后将类配置到WEB-INFO下xwiki.cfg的xwiki.authentication.authclass属性上开启自定义认证。 官方文档&#xff1a;https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Authentication/ 官方自定义认证的示例&#…

使用vite新建vue3项目 以及elementui的使用 vite组件问题

项目创建 在创建项目之前我们应该在终端中输入 node -v 和 npm -v 只有它们都能正常查看版本号才说明我们之前是已经安装完成的。 接下来我们在合适的目录下输入npm create vitelatest 它会要求你输入项目的名称&#xff0c;这个名称和我们之前通过cil创建的命名规则一样。…

音频录制小妙招-自制工具-借助浏览器录一段单声道16000采样率wav格式音频

先看效果 1、打开页面 2、点击开始录音&#xff0c;弹出权限提示&#xff0c;点击“仅这次访问时允许” 3、录完后&#xff0c;点击停止 4、文件自动下载到默认目录 上代码 js 部分 document.addEventListener(DOMContentLoaded, () > {const startBtn document.getEleme…

Mysql-经典实战案例(10):如何用PT-Archiver完成大表的自动归档

真实痛点&#xff1a;电商订单表存储优化场景 现状分析 某电商平台订单表&#xff08;order_info&#xff09;每月新增500万条记录 主库&#xff1a;高频读写&#xff0c;SSD存储&#xff08;空间告急&#xff09;历史库&#xff1a;HDD存储&#xff0c;只读查询 优化目标 …

CUDA编程面试高频30题

1. 什么是CUDA&#xff1f;它与GPU的关系是什么&#xff1f; 答: CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的一种并行计算平台和应用程序接口模型。它允许开发者利用NVIDIA GPU进行通用计算任务&#xff0c;而不仅仅是图形渲染。CUDA提…

数学建模 绘图 图表 可视化(3)

文章目录 前言二维散点图系列坐标图数据分布特征&#xff0c;Q-Q、P-P图分类图一般的曲线图峰峦图总结参考资料 前言 承接上期 数学建模 绘图 图表 可视化&#xff08;1&#xff09;的总体描述&#xff0c;这期我们继续跟随《Python 数据可视化之美 专业图表绘制指南》步伐来学…

【数据结构】栈(Stack)、队列(Queue)、双端队列(Deque) —— 有码有图有真相

目录 栈和队列 1. 栈&#xff08;Stack&#xff09; 1.1 概念 1.2 栈的使用&#xff08;原始方法&#xff09; 1.3 栈的模拟实现 【小结】 2. 栈的应用场景 1、改变元素的序列 2、将递归转化为循环 3、逆波兰表达式求值 4、括号匹配 5、出栈入栈次序匹配 6、最小栈…