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

08-23 154阅读 0评论

一、pandas如何对Categorical类型字段数据统计

实战场景:对CateGorical型字段数据统计,CateGOrical类型是Pandas拥有的一种特殊数据类型,这样的类型可以含基于整数的类别展示和编码的数据

1.1主要知识点

文件读写基础语法Pandasread_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 customerID7043 non-null category1 gender 7043 non-null category2 SeniorCitizen 7043 non-null category3 Partner 7043 non-null category4 DependenTS7043 non-null category5 tenure 7043 non-null float646 PhoneService 7043 non-null category7 MultipleLines 7043 non-null category8 InternetService 7043 non-null category9 OnlineSecurity 7043 non-null category10 OnlineBackup 7043 non-null category11 DeviceProtectiON 7043 non-null category12 TechSupport7043 non-null category13 StreamingTV7043 non-null category14 StreamingMovies 7043 non-null category15 Contract 7043 non-null category16 PaperlessBilling 7043 non-null category17 PaymentMethod 7043 non-null category18 MonthlyCharges 7043 non-null float6419 TotalCharges 7043 non-null float6420 Churn 7043 non-null categorydtypes: category(18), float64(3)memory usage: 611.1 KBNonecustomerID gender SeniorCitizen Partner ...Contract PaperlessBilling PaymentMethod Churn count 7043 7043 7043 7043 ... 7043 7043 7043 7043 unique7043 2 22 ...32 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主要知识点

文件读写基础语法Pandasread_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 Month0 2021-09-30 456.000 464.600 453.800 461.400 17335451 2021 91 2021-09-29 461.600 465.000 450.200 465.000 18250450 2021 92 2021-09-28 467.000 476.200 464.600 469.800 20947276 2021 93 2021-09-27 459.000 473.000 455.200 464.600 17966998 2021 94 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 64263 2004-06-21 4.125 4.125 3.950 4.000 22817000 2004 64264 2004-06-18 4.200 4.250 3.950 4.025 36598000 2004 64265 2004-06-17 4.150 4.375 4.125 4.225 83801500 2004 64266 2004-06-16 4.375 4.625 4.075 4.150 439775000 2004 6

[4267 rows x 8 columns]Year2004 4.3386862005 6.5689272006 15.8659512007 37.8827242008 54.8183672009 96.3696792010 157.2995982011 189.7373982012 228.9870452013 337.1360662014 271.2914982015 144.8242912016 176.5620412017 291.0666672018 372.6788622019 346.2252032020 479.1411292021 586.649189Name: Close, dtype: float64

三、Pandas如何给股票数据新增年份和月份

实战场景:Pandas如何给股票数据新增年份和月份

3.1主要知识点

文件读写基础语法PandasPandas的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 Volume0 2021-09-30 456.000 464.600 453.800 461.400 173354511 2021-09-29 461.600 465.000 450.200 465.000 182504502 2021-09-28 467.000 476.200 464.600 469.800 209472763 2021-09-27 459.000 473.000 455.200 464.600 179669984 2021-09-24 461.400 473.400 456.200 460.200 16656914... ... ... ... ... ......4262 2004-06-23 4.050 4.450 4.025 4.425 550160004263 2004-06-21 4.125 4.125 3.950 4.000 228170004264 2004-06-18 4.200 4.250 3.950 4.025 365980004265 2004-06-17 4.150 4.375 4.125 4.225 838015004266 2004-06-16 4.375 4.625 4.075 4.150 439775000

[4267 rows x 6 columns] Date Open High Low Close Volume Year Month0 2021-09-30 456.000 464.600 453.800 461.400 17335451 2021 91 2021-09-29 461.600 465.000 450.200 465.000 18250450 2021 92 2021-09-28 467.000 476.200 464.600 469.800 20947276 2021 93 2021-09-27 459.000 473.000 455.200 464.600 17966998 2021 94 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 64263 2004-06-21 4.125 4.125 3.950 4.000 22817000 2004 64264 2004-06-18 4.200 4.250 3.950 4.025 36598000 2004 64265 2004-06-17 4.150 4.375 4.125 4.225 83801500 2004 64266 2004-06-16 4.375 4.625 4.075 4.150 439775000 2004 6

[4267 rows x 8 columns]

四、Pandas如何获取表格的信息和基本数据统计

实战场景:Pandas如何获取表格的信息和基本数据统计

4.1主要知识点

文件读写基础语法PandasPandas的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-27Freq: DData columns (total 3 columns):# Column Non-Null Count Dtype--- ------ -------------- -----0 norm 1000 non-null float641 uniform 1000 non-null float642 binomial 1000 non-null int32dtypes: float64(2), int32(1)memory usage: 27.3 KBNone

norm uniform binomialcount 1000.000000 1000.000000 1000.000000mean -0.028664 0.496156 0.215000std0.987493 0.292747 0.411028min -3.110249 0.000629 0.00000025% -0.697858 0.238848 0.00000050% -0.023654 0.503438 0.00000075%0.652157 0.746672 0.000000max3.333271 0.997617 1.000000

五、Pandas如何使用日期和随机生成表格数据类型

实战场景:Pandas如何使用日期和随机数生成表格数据类型

5.1主要知识点

文件读写基础语法PandasPandas的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 binomial2021-01-01 1.387663 0.223985 02021-01-02 2.080345 0.704094 02021-01-03 1.615880 0.012283 02021-01-04 0.523260 0.053396 02021-01-05 -0.872305 0.973047 0... .........2023-09-23 -1.601608 0.423913 02023-09-24 -0.712566 0.727326 12023-09-25 -0.188441 0.879798 02023-09-26 2.249404 0.229298 02023-09-27 2.132976 0.472873 0

[1000 rows x 3 columns]

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

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:goliszhou@gmail.com
$

发表评论

表情:
评论列表 (暂无评论,154人围观)

还没有评论,来说两句吧...