Pandas如何对Categorical类型字段数据统计实战案例
作者:菜鸟实战 发布时间:2023-03-01 20:02:26
一、Pandas如何对Categorical类型字段数据统计
实战场景:对Categorical类型字段数据统计,Categorical类型是Pandas拥有的一种特殊数据类型,这样的类型可以包含基于整数的类别展示和编码的数据
1.1主要知识点
文件读写
基础语法
Pandas
read_csv
实战:
1.2创建 python 文件
import pandas as pd
#读取csv文件
df = pd.read_csv("Telco-Customer-Churn.csv")
# 填充 TotalCharges 的缺失值
median = df["TotalCharges"][df["TotalCharges"] != ' '].median()
df.loc[df["TotalCharges"] == ' ', 'TotalCharges'] = median
df["TotalCharges"] = df["TotalCharges"].astype(float)
# 将分类列转换成 Categorical 类型
number_columns = ['tenure', 'MonthlyCharges', 'TotalCharges']
for column in number_columns: df[column] = df[column].astype(float) #对三列变成float类型
for column in set(df.columns) - set(number_columns): df[column] = pd.Categorical(df[column])
print(df.info())
print(df.describe(include=["category"]))
1.3运行结果
RangeIndex: 7043 entries, 0 to 7042
Data columns (total 21 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 customerID 7043 non-null category
1 gender 7043 non-null category
2 SeniorCitizen 7043 non-null category
3 Partner 7043 non-null category
4 Dependents 7043 non-null category
5 tenure 7043 non-null float64
6 PhoneService 7043 non-null category
7 MultipleLines 7043 non-null category
8 InternetService 7043 non-null category
9 OnlineSecurity 7043 non-null category
10 OnlineBackup 7043 non-null category
11 DeviceProtection 7043 non-null category
12 TechSupport 7043 non-null category
13 StreamingTV 7043 non-null category
14 StreamingMovies 7043 non-null category
15 Contract 7043 non-null category
16 PaperlessBilling 7043 non-null category
17 PaymentMethod 7043 non-null category
18 MonthlyCharges 7043 non-null float64
19 TotalCharges 7043 non-null float64
20 Churn 7043 non-null category
dtypes: category(18), float64(3)
memory usage: 611.1 KB
None
customerID gender SeniorCitizen Partner ... Contract PaperlessBilling PaymentMethod Churn
count 7043 7043 7043 7043 ... 7043 7043 7043 7043
unique 7043 2 2 2 ... 3 2 4 2
top 0002-ORFBO Male 0 No ... Month-to-month Yes Electronic check No
freq 1 3555 5901 3641 ... 3875 4171 2365 5174[4 rows x 18 columns]
二、Pandas如何从股票数据找出收盘价最低行
实战场景:Pandas如何从股票数据找出收盘价最低行
2.1主要知识点
文件读写
基础语法
Pandas
read_csv
2.2创建 python 文件
"""
数据是CSV格式
1、加载到dataframe
2、找出收盘价最低的索引
3、根据索引找出数据行4 打印结果数据行
"""
import pandas as pd
df = pd.read_csv("./00700.HK.csv")
df["Date"] = pd.to_datetime(df["Date"])
df["Year"] = df["Date"].dt.year
df["Month"] = df["Date"].dt.month
print(df)
print(df.groupby("Year")["Close"].mean())
print(df.describe())
2.3运行结果
Date Open High Low Close Volume Year Month
0 2021-09-30 456.000 464.600 453.800 461.400 17335451 2021 9
1 2021-09-29 461.600 465.000 450.200 465.000 18250450 2021 9
2 2021-09-28 467.000 476.200 464.600 469.800 20947276 2021 9
3 2021-09-27 459.000 473.000 455.200 464.600 17966998 2021 9
4 2021-09-24 461.400 473.400 456.200 460.200 16656914 2021 9
... ... ... ... ... ... ... ... ...
4262 2004-06-23 4.050 4.450 4.025 4.425 55016000 2004 6
4263 2004-06-21 4.125 4.125 3.950 4.000 22817000 2004 6
4264 2004-06-18 4.200 4.250 3.950 4.025 36598000 2004 6
4265 2004-06-17 4.150 4.375 4.125 4.225 83801500 2004 6
4266 2004-06-16 4.375 4.625 4.075 4.150 439775000 2004 6[4267 rows x 8 columns]
Year
2004 4.338686
2005 6.568927
2006 15.865951
2007 37.882724
2008 54.818367
2009 96.369679
2010 157.299598
2011 189.737398
2012 228.987045
2013 337.136066
2014 271.291498
2015 144.824291
2016 176.562041
2017 291.066667
2018 372.678862
2019 346.225203
2020 479.141129
2021 586.649189
Name: Close, dtype: float64
三、Pandas如何给股票数据新增年份和月份
实战场景:Pandas如何给股票数据新增年份和月份
3.1主要知识点
文件读写
基础语法
Pandas
Pandas的Series对象
DataFrame
实战:
3.2创建 python 文件
"""
给股票数据新增年份和月份
"""
import pandas as pd
df = pd.read_csv("./00100.csv")
print(df)
# to_datetime变成时间类型
df["Date"] = pd.to_datetime(df["Date"])
df["Year"] = df["Date"].dt.year
df["Month"] = df["Date"].dt.month
print(df)
3.3运行结果
Date Open High Low Close Volume
0 2021-09-30 456.000 464.600 453.800 461.400 17335451
1 2021-09-29 461.600 465.000 450.200 465.000 18250450
2 2021-09-28 467.000 476.200 464.600 469.800 20947276
3 2021-09-27 459.000 473.000 455.200 464.600 17966998
4 2021-09-24 461.400 473.400 456.200 460.200 16656914
... ... ... ... ... ... ...
4262 2004-06-23 4.050 4.450 4.025 4.425 55016000
4263 2004-06-21 4.125 4.125 3.950 4.000 22817000
4264 2004-06-18 4.200 4.250 3.950 4.025 36598000
4265 2004-06-17 4.150 4.375 4.125 4.225 83801500
4266 2004-06-16 4.375 4.625 4.075 4.150 439775000[4267 rows x 6 columns]
Date Open High Low Close Volume Year Month
0 2021-09-30 456.000 464.600 453.800 461.400 17335451 2021 9
1 2021-09-29 461.600 465.000 450.200 465.000 18250450 2021 9
2 2021-09-28 467.000 476.200 464.600 469.800 20947276 2021 9
3 2021-09-27 459.000 473.000 455.200 464.600 17966998 2021 9
4 2021-09-24 461.400 473.400 456.200 460.200 16656914 2021 9
... ... ... ... ... ... ... ... ...
4262 2004-06-23 4.050 4.450 4.025 4.425 55016000 2004 6
4263 2004-06-21 4.125 4.125 3.950 4.000 22817000 2004 6
4264 2004-06-18 4.200 4.250 3.950 4.025 36598000 2004 6
4265 2004-06-17 4.150 4.375 4.125 4.225 83801500 2004 6
4266 2004-06-16 4.375 4.625 4.075 4.150 439775000 2004 6[4267 rows x 8 columns]
四、Pandas如何获取表格的信息和基本数据统计
实战场景:Pandas如何获取表格的信息和基本数据统计
4.1主要知识点
文件读写
基础语法
Pandas
Pandas的Series对象
numpy
实战:
4.2创建 python 文件
import pandas as pd
import numpy as np
df = pd.DataFrame( data={ "norm": np.random.normal(loc=0, scale=1, size=1000), "uniform": np.random.uniform(low=0, high=1, size=1000), "binomial": np.random.binomial(n=1, p=0.2, size=1000)}, index=pd.date_range(start='2021-01-01', periods=1000))
# df.info(),查看多少行,多少列,类型等基本信息
# df.describe(),查看每列的平均值、最小值、最大值、中位数等统计信息;
print(df.info())
print()
print(df.describe())
4.3运行结果
DatetimeIndex: 1000 entries, 2021-01-01 to 2023-09-27
Freq: D
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 norm 1000 non-null float64
1 uniform 1000 non-null float64
2 binomial 1000 non-null int32
dtypes: float64(2), int32(1)
memory usage: 27.3 KB
Nonenorm uniform binomial
count 1000.000000 1000.000000 1000.000000
mean -0.028664 0.496156 0.215000
std 0.987493 0.292747 0.411028
min -3.110249 0.000629 0.000000
25% -0.697858 0.238848 0.000000
50% -0.023654 0.503438 0.000000
75% 0.652157 0.746672 0.000000
max 3.333271 0.997617 1.000000
五、Pandas如何使用日期和随机数生成表格数据类型
实战场景:Pandas如何使用日期和随机数生成表格数据类型
5.1主要知识点
文件读写
基础语法
Pandas
Pandas的Series对象
numpy
实战:
5.2创建 python 文件
"""
输出:一个DataFrame,包含三列
1000个日期作为索引:从2021-01-01开始
数据列:正态分布1000个随机数,loc=0,scale=1
数据列:均匀分布1000个随机数,low=0,high=1
数据列:二项分布1000个随机数,n=1,p=0.2
"""
import pandas as pd
import numpy as np
#生成索引列,1000天
date_range = pd.date_range(start='2021-01-01', periods=1000)
data = { 'norm': np.random.normal(loc=0, scale=1, size=1000), 'uniform': np.random.uniform(low=0, high=1, size=1000), 'binomial': np.random.binomial(n=1, p=0.2, size=1000)
}
df = pd.DataFrame(data=data, index=date_range)
print(df)
5.3运行结果
norm uniform binomial
2021-01-01 1.387663 0.223985 0
2021-01-02 2.080345 0.704094 0
2021-01-03 1.615880 0.012283 0
2021-01-04 0.523260 0.053396 0
2021-01-05 -0.872305 0.973047 0
... ... ... ...
2023-09-23 -1.601608 0.423913 0
2023-09-24 -0.712566 0.727326 1
2023-09-25 -0.188441 0.879798 0
2023-09-26 2.249404 0.229298 0
2023-09-27 2.132976 0.472873 0[1000 rows x 3 columns]
来源:https://blog.csdn.net/qq_39816613/article/details/126231344
猜你喜欢
- 开发目标:实现小红帽所挂脚本的自动生成下图为生成的最终目标本项目是从json中读取角色场景等信息,因此为了更好地判断所用属性是否需要,设置为
- 上一篇的DOCTYPE声明好以后,接下来的代码是:<html xmlns="xhtml" ta
- 代码:hello.py#!/usr/bin/python# coding: utf-8# hello.pydef application(e
- 使用 scipy.signal 的 argrelextrema 函数(API),简单方便import numpy as np import
- 在深度学习中,模型的输入size通常是正方形尺寸的,比如300 x 300这样.直接resize的话,会把图像拉的变形.通常我们希望resi
- 当使用AJAX进行GET请求的时候,会有一个现象就是刷新网页后,AJAX请求的数据没有改变,只有把IE的缓存清空,或者从新打开一个IE窗口的
- scrapy.FormRequestlogin.pyclass LoginSpider(scrapy.Spider): name =
- 一、为图片添加水印 代码如下:<% Dim Jpeg ””//声明变量 Set Jpeg = Server.CreateObject(
- 使用PyCharm工具写好的Python程序脚本,怎么将.py文件编译为可执行的.exe文件前提是已经安装了Python环境。第一步:在Py
- 本文实例为大家分享了python样条插值的具体实现代码,供大家参考,具体内容如下import numpy as npimport panda
- 1. random库基本介绍Random库时使用随机数的python标准库伪随机数:采用梅森旋转算法生成的(伪)随机序列中的元素Random
- Python借助AI和数据科学,目前已经攀爬到了编程语言生态链的顶级位置,可以说Python基本上与AI已经紧密捆绑在了一起了。为什么人工智
- 1. str.format 的引入在 Python 中,我们可以使用 + 来连接字符串,在简单情况下这种方式能够很好的工作。但是当我们需要进
- 全选、全不选、反选这几个功能我们经常会用到,如我们可以用在文章列表管理页面,也可以用在音乐播放页面,使用全选我们可以很方便的进行批量操作,如
- 【简 介】熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,也可以在
- 不得不承认,傲游在用户体验方面是做得比较好的,所以它的用户群非常大。也正因为如此,它的某些不好的特性也造成了开发人员不可忽略的浏览器兼容问题
- 一、代码注释介绍注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解
- 首先,eval模式和train模式得到不同的结果是正常的。我的模型中,eval模式和train模式不同之处在于Batch Normaliza
- 如下所示:# 返回一个列表中第二大的数def second(ln):max = 0s = {}for i in range(len(ln))
- 引言本篇文章译自英文文档 Introduction to TOPI。作者是 Ehsan M. Kermani。更多 TVM 中文文档可访问