網(wǎng)站首頁 編程語言 正文
一、Series類型
在Pandas中,有兩個(gè)基本的數(shù)據(jù)類型,使得在處理數(shù)據(jù)的時(shí)候變得非常高效,分別是Series和DataFrame,其中DataFrame是由多個(gè)Series組成的,因此要先學(xué)好Series,才能對DataFrame的使用更加得心應(yīng)手。
Series是一種類似于列表的對象,由一列數(shù)據(jù)以及一列與之對應(yīng)的索引組成。如下圖所示。
1. 創(chuàng)建Series對象:
在實(shí)際開發(fā)中,可能需要經(jīng)常創(chuàng)建Series對象,而創(chuàng)建Series對象有多重方式,下面進(jìn)行講解。
1.1. 通過列表或ndarray數(shù)組創(chuàng)建:
import pandas as pd
persons = ['張三','李四','王五']
series = pd.Series(persons)
print(series)
print(type(series))
上述代碼可以看到輸出以上代碼輸出為:
0 張三
1 李四
2 王五
dtype: object
<class 'pandas.core.series.Series'>
1.2. 通過字典創(chuàng)建:
persons = {"張三":18, "李四": 25, "王五": 19}
series = pd.Series(persons)
print(series)
print(type(series))
上述代碼的輸出結(jié)果為:
張三 18
李四 25
王五 19
dtype: int64
<class 'pandas.core.series.Series'>
2. Series對象相關(guān)操作:
2.1. 獲取數(shù)據(jù)和索引:
通過series.index
和series.values
能分別獲取到Series
對象的索引和值。示例代碼如下:
persons = ['張三','李四','王五']
series = pd.Series(persons)
print(series.index)
print(series.values)
輸出結(jié)果為:
RangeIndex(start=0, stop=3, step=1)
['張三' '李四' '王五']
2.2. 通過索引獲取對應(yīng)的值:
我們經(jīng)常會(huì)通過索引來獲取對應(yīng)的值,語法為:series[索引]
。示例代碼如下:
persons = ['張三','李四','王五']
series = pd.Series(persons)
print(series[0])
輸出結(jié)果為:'張三'
。
二、DataFrame對象:
DataFrame
由多行多列組成,是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu)。可以認(rèn)為一個(gè)DataFrame是由多個(gè)Series對象組成,這些Series共用同一個(gè)行索引,每個(gè)Series的數(shù)據(jù)類型可以不同。結(jié)構(gòu)圖如下。
1. 創(chuàng)建DataFrame對象:
1.1. 通過ndarray創(chuàng)建DataFrame對象:
二維數(shù)組天然具有行和列的概念,因此可以非常方便的使用二維數(shù)組創(chuàng)建DataFrame對象。示例代碼如下:
import numpy as np
# 通過ndarray創(chuàng)建DataFrame
array = np.random.randn(5,4)
print(array)
df_obj = pd.DataFrame(array)
print(df_obj.head())
運(yùn)行結(jié)果如下:
[[ 1.70457214 0.53100369 0.37360947 0.93320688]
[-0.56648031 -0.32116357 -0.3837961 -1.80175888]
[ 2.12109864 0.83919019 -0.43187152 0.80611653]
[-0.66275038 0.90984602 0.11596098 0.41519099]
[-1.62119184 2.40474293 0.96915745 -0.28995527]]
0 1 2 3
0 1.704572 0.531004 0.373609 0.933207
1 -0.566480 -0.321164 -0.383796 -1.801759
2 2.121099 0.839190 -0.431872 0.806117
3 -0.662750 0.909846 0.115961 0.415191
4 -1.621192 2.404743 0.969157 -0.289955
同理,用二維列表,也同樣可以達(dá)到效果。可以在創(chuàng)建DataFrame
的時(shí)候,指定行索引和列索引。示例代碼如下:
df = pd.DataFrame(array, index=[1,2,3,4,5], columns=['星期一','星期二','星期三','星期四']
輸出結(jié)果如下:
星期一 星期二 星期三 星期四
1 1.704572 0.531004 0.373609 0.933207
2 -0.566480 -0.321164 -0.383796 -1.801759
3 2.121099 0.839190 -0.431872 0.806117
4 -0.662750 0.909846 0.115961 0.415191
5 -1.621192 2.404743 0.969157 -0.289955
1.2. 通過字典創(chuàng)建DataFrame:
persons = [{"username":"張三","age": 18, "height": 180},{"username":"李四","age": 20, "height": 170}]
df = pd.DataFrame(persons)
print(df)
運(yùn)行結(jié)果如下:
username age height
0 張三 18 180
1 李四 20 170
上述是把多個(gè)字典存放到列表中,也可以直接使用字典創(chuàng)建,示例代碼如下:
persons = {"username":["張三","李四"],"age": [18, 20], "height": [180, 170]}
df = pd.DataFrame(persons)
print(df)
2. DataFrame基本操作:
2.1. 獲取列的數(shù)據(jù):
通過df.列名
或者df['列名']
都可以獲取到該列的所有數(shù)據(jù)。示例代碼如下:
# 1. df.列名
print(df.username)
# 2. df['列名']
print(df['username'])
以上獲取到的數(shù)據(jù)類型,實(shí)際上就是一個(gè)Series對象。
2.2. 獲取行的數(shù)據(jù):
行的數(shù)據(jù)是通過索引來獲取,在DataFrame
中索引操作功能非常強(qiáng)大,這里我們講解一個(gè)簡單的示例。關(guān)于索引更多操作讀者請參考下一節(jié)。
# 獲取下標(biāo)為0的索引的那一行的值
print(df.iloc[0])
輸出結(jié)果如下:
username 張三
age 18
height 180
Name: 0, dtype: object
2.3. 增加列的數(shù)據(jù):
可以通過類似字典操作的方式,給DataFrame
添加新的列。示例代碼如下:
# 添加weight列
df['weight'] = [80, 60]
print(df)
輸出結(jié)果如下:
username age height weight
0 張三 18 180 80
1 李四 20 170 60
2.4. 刪除列:
通過del
關(guān)鍵字即可刪除某一列的數(shù)據(jù)。示例代碼如下:
del df['weight']
print(df)
輸出結(jié)果如下:
username age height
0 張三 18 180
1 李四 20 170
3. 查看數(shù)據(jù):
3.1. head
如果DataFrame
數(shù)據(jù)行數(shù)特別多,我們只想看前面部分的數(shù)據(jù),那么可以使用df.head
來查看。示例代碼如下:
# 默認(rèn)查看前面5條數(shù)據(jù)
df.head()
# 查看前面10條數(shù)據(jù)
df.head(10)
3.2. tail:
與head
相反,tail
是用于查看DataFrame
末尾的數(shù)據(jù),默認(rèn)是5條。示例代碼如下:
# 默認(rèn)查看末尾5調(diào)數(shù)據(jù)
df.tail()
# 查看末尾10條數(shù)據(jù)
df.tail(10)
3.3. describe:
查看DataFrame
的描述。會(huì)把所有數(shù)字類型的列進(jìn)行運(yùn)算,比如獲取總的個(gè)數(shù),平均值,中位數(shù)等。
import pandas as pd
persons = [{"username":"張三","age": 18, "height": 180},{"username":"李四","age": 20, "height": 170}]
df = pd.DataFrame(persons)
df.describe()
輸出結(jié)果為:
age height
count 2.000000 2.000000
mean 19.000000 175.000000
std 1.414214 7.071068
min 18.000000 170.000000
25% 18.500000 172.500000
50% 19.000000 175.000000
75% 19.500000 177.500000
max 20.000000 180.000000
3.4. shape:
查看當(dāng)前DataFrame
的形狀。示例代碼如下:
df.shape
3.5. index和columns:
df.index
用于查看當(dāng)前的行索引。df.columns
用于查看當(dāng)前的列索引。示例代碼如下:
# 查看行索引
print(df.index)
# 查看列索引
print(df.columns)
3.6. T:
df.T
用于轉(zhuǎn)置數(shù)組,可以將行變?yōu)榱校凶優(yōu)樾小J纠a如下:
print(df.T)
3.7. info:
查看數(shù)據(jù)相關(guān)信息,比如列數(shù)、每列的類型等。
3.8. dtypes:
查看DataFrame
的所有列的數(shù)據(jù)類型。
原文鏈接:https://blog.csdn.net/qq_41404557/article/details/125898356
相關(guān)推薦
- 2022-09-24 Python?tkinter?多選按鈕控件?Checkbutton方法_python
- 2024-03-20 解決npm install遇到的問題:Error while executing:
- 2022-01-17 報(bào)錯(cuò):是否需要更改目標(biāo)庫?請嘗試將lib編譯器選項(xiàng)更改為es2015或更高版本
- 2022-07-16 Mybatis-plus設(shè)置某個(gè)字段值為null
- 2022-10-15 QT實(shí)現(xiàn)文件傳輸功能_C 語言
- 2022-04-01 k8s報(bào)錯(cuò)error: You must be logged in to the server (U
- 2022-06-22 git用戶自定義變量查看修改及調(diào)用教程詳解_其它綜合
- 2022-07-09 flutter封裝單選點(diǎn)擊菜單工具欄組件_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支