<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
實戰場景:對Categorical型別欄位資料統計,Categorical型別是Pandas擁有的一種特殊資料型別,這樣的型別可以包含基於整數的類別展示和編碼的資料
實戰:
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"]))
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如何從股票資料找出收盤價最低行
""" 資料是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())
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如何給股票資料新增年份和月份
實戰:
""" 給股票資料新增年份和月份 """ 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)
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如何獲取表格的資訊和基本資料統計
實戰:
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())
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如何使用日期和亂數生成表格資料型別
實戰:
""" 輸出:一個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)
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資料統計內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45