Pandas如何对Categorical类型字段数据统计实战案例

目录
  • 一、Pandas如何对Categorical类型字段数据统计
    • 1.1主要知识点
    • 1.2创建 python 文件
    • 1.3运行结果
  • 二、Pandas如何从股票数据找出收盘价最低行
    • 2.1主要知识点
    • 2.2创建 python 文件
    • 2.3运行结果
  • 三、Pandas如何给股票数据新增年份和月份
    • 3.1主要知识点
    • 3.2创建 python 文件
    • 3.3运行结果
  • 四、Pandas如何获取表格的信息和基本数据统计
    • 4.1主要知识点
    • 4.2创建 python 文件
    • 4.3运行结果
  • 五、Pandas如何使用日期和随机数生成表格数据类型
    • 5.1主要知识点
    • 5.2创建 python 文件
    • 5.3运行结果

一、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
None

norm      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]

到此这篇关于Pandas如何对Categorical类型字段数据统计实战案例的文章就介绍到这了,更多相关Pandas Categorical数据统计内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • keras.utils.to_categorical和one hot格式解析

    keras.utils.to_categorical这个方法,源码中,它是这样写的: Converts a class vector (integers) to binary class matrix. E.g. for use with categorical_crossentropy. 也就是说它是对于一个类型的容器(整型)的转化为二元类型矩阵.比如用来计算多类别交叉熵来使用的. 其参数也很简单: def to_categorical(y, num_classes=None): Argume

  • Python CategoricalDtype自定义排序实现原理解析

    CategoricalDtype自定义排序 当我们的透视表生成完毕后,有很多情况下需要我们对某列或某行值进行排序.排序有很多种方法.例如sort_index及sort_values函数也可以对数据进行排序,这里就不多说了. 对于数值和字母的排序很容易,但是对于中文的排序就有点麻烦了.默认情况下是按照utf-8的编码来进行排序的但是即使如此也很难满足我们对汉字排序的要求.所以通过CategoricalDtye可以把数据类型转成Category类型 然后通过指定参数列表的顺序来自定义那个元素先那个元

  • 浅谈keras中的keras.utils.to_categorical用法

    如下所示: to_categorical(y, num_classes=None, dtype='float32') 将整型标签转为onehot.y为int数组,num_classes为标签类别总数,大于max(y)(标签从0开始的). 返回:如果num_classes=None,返回len(y) * [max(y)+1](维度,m*n表示m行n列矩阵,下同),否则为len(y) * num_classes.说出来显得复杂,请看下面实例. import keras ohl=keras.utils

  • Keras中的多分类损失函数用法categorical_crossentropy

    from keras.utils.np_utils import to_categorical 注意:当使用categorical_crossentropy损失函数时,你的标签应为多类模式,例如如果你有10个类别,每一个样本的标签应该是一个10维的向量,该向量在对应有值的索引位置为1其余为0. 可以使用这个方法进行转换: from keras.utils.np_utils import to_categorical categorical_labels = to_categorical(int_

  • 解决keras,val_categorical_accuracy:,0.0000e+00问题

    问题描述: 在利用神经网络进行分类和识别的时候,使用了keras这个封装层次比较高的框架,backend使用的是tensorflow-cpu. 在交叉验证的时候,出现 val_categorical_accuracy: 0.0000e+00的问题. 问题分析: 首先,弄清楚,训练集.验证集.测试集的区别,验证集是从训练集中提前拿出一部分的数据集.在keras中,一般都是使用这种方式来指定验证集占训练集和的总大小. validation_split=0.2 比如,经典的数据集MNIST,共有600

  • Pandas如何对Categorical类型字段数据统计实战案例

    目录 一.Pandas如何对Categorical类型字段数据统计 1.1主要知识点 1.2创建 python 文件 1.3运行结果 二.Pandas如何从股票数据找出收盘价最低行 2.1主要知识点 2.2创建 python 文件 2.3运行结果 三.Pandas如何给股票数据新增年份和月份 3.1主要知识点 3.2创建 python 文件 3.3运行结果 四.Pandas如何获取表格的信息和基本数据统计 4.1主要知识点 4.2创建 python 文件 4.3运行结果 五.Pandas如何使用

  • MySQL对JSON类型字段数据进行提取和查询的实现

    目录 前言 1. 问题现象 2. 解决方案 3. JSON数据查询 3.1 一般基础查询操作 3.2 一般函数查询操作 4. JSON数据新增更新删除 前言 昨天上线后通过系统报警发现了一个bug,于是紧急进行了回滚操作,但是期间有用户下单,数据产生了影响,因此需要排查影响了哪些订单,并对数据进行修复. 1. 问题现象 由于bug导致了订单表的customer_extra_info字段的hasFreightInsurance误更新成了“是”,因此需要查询回滚前一共有多少被误更新为“是”的订单,如

  • 详细介绍在pandas中创建category类型数据的几种方法

    在pandas中创建category类型数据的几种方法之详细攻略 T1.直接创建 category类型数据 可知,在category类型数据中,每一个元素的值要么是预设好的类型中的某一个,要么是空值(np.nan). T2.利用分箱机制(结合max.mean.min实现二分类)动态添加 category类型数据 输出结果 [NaN, 'medium', 'medium', 'fat'] Categories (2, object): ['medium', 'fat']    name    ID

  • pandas中对文本类型数据的处理小结

    目录 1.英文字母大小写转换及填充 2.字符串合并与拆分 2.1 多列字符串合并 2.2 一列 列表形式的文本合并为一列 2.3 一列字符串与自身合并成为一列 2.4 一列字符串拆分为多列 2.4.1 partition函数 2.4.2 split函数 2.4.3 rsplit函数 3.字符串统计 3.1 统计某列字符串中包含某个字符串的个数 3.2 统计字符串长度 4.字符串内容查找(包含正则) 4.1 extract 4.2 extractall 4.3 find 4.4 rfind 4.5

  • pandas 取出表中一列数据所有的值并转换为array类型的方法

    如下所示: # -*-coding: utf-8 -*- import pandas as pd #读取csv文件 df=pd.read_csv('A_2+20+DoW+VC.csv') #求'ave_time'的平均值 aveTime=df['ave_time'].mean() #把ave_time这列的缺失值进进行填充,填充的方法是按这一列的平均值进行填充 df2=df.fillna(aveTime) #取表中的第3列的所有值 col=df2.iloc[:,2] #取表中的第3列的所有值 a

  • 在SQL中对同一个字段不同值,进行数据统计操作

    应用场景: 需要根据印章的不同状态,统计不同状态下印章数量. 刚开始百度,确实写搜到了不同的答案,但只能怪自己对sql语法解读不够,还是没写出来,导致写出了下面错误的写法. select b.corporateOrgName, b.corporateOrgGuid companyId, count(case when bc.ftype not in(1,2) then 1 else 0 end ) total, count(case when bc.ftype in(3,4,5) then 1

  • java实现往hive 的map类型字段写数据

    往hive 的map类型字段写数据 该表的该字段类型是map<string,string> 对应类的该属性的类型需要定义成String,不可定义成Map<String,String> !! 方法1: 建表语句定义map的分隔符: row format delimited fields terminated by '|' collection items terminated by ',' map keys terminated by ':' NULL DEFINED AS '' 然

  • Asp.net管理信息系统中数据统计功能的实现方法

    数据统计是每个系统中必备的功能,在给领导汇报统计数据,工作中需要的进展数据时非常有用. 在我看来,一个统计的模块应该实现以下功能: 能够将常用的查询的统计结果显示出来: 显示的结果可以是表格形式,也可以是图形形式,如果是图形的话能够以多种形式显示(柱状图.折线图.饼图.雷达图.堆叠柱状图等): 统计查询的结果,点击数字或者百分比能够显示详细的数据: 能够自由组合查询条件.筛选条件.分组条件.排序等: 统计结果最好有个实时预览: 查询统计能够保存,以便下次能直接调用并显示统计查询的结果: 对于保存

  • MySQL中几种数据统计查询的基本使用教程

    统计平均数 SELECT AVG() FROM 语法用于从数据表中统计数据平均数. 语法: SELECT AVG(column) FROM tb_name 该 SQL 语法用于统计某一数值类型字段的平均数,AVG() 内不能是多个字段,字符串等类型虽然可以执行,但无意义. 例子: SELECT AVG(uid) FROM user 得到查询结果: 2.5000 当然在此统计 uid 的平均数是无实际生产意义的,只是为了演示 AVG() 语法的用法. 统计数据之和 SELECT SUM() FRO

  • Pandas实现DataFrame的简单运算、统计与排序

    目录 一.运算 二.统计 三.排序 在前面的章节中,我们讨论了Series的计算方法与Pandas的自动对齐功能.不光是Series,DataFrame也是支持运算的,而且还是经常被使用的功能之一. 由于DataFrame的数据结构中包含了多行.多列,所以DataFrame的计算与统计可以是用行数据或者用列数据.为了更方便我们的使用,Pandas为我们提供了常用的计算与统计方法: 操作 方法 操作 方法 求和 sum 最大值 max 求均值 mean 最小值 min 求方差 var 标准差 st

随机推荐