python pandas詳細用法指南(推薦)
1 定義數(shù)據(jù)結(jié)構(gòu)
1.1 Series
pandas主要的數(shù)據(jù)結(jié)構(gòu)是 Series (一維數(shù)據(jù))與 DataFrame(二維數(shù)據(jù))。
Series (一維數(shù)據(jù)):可以是數(shù)字(整數(shù)、浮點數(shù)等)、字符串、列表,元組,字典等python對象。series的每個值都有一個索引,默認從0開始。具有不變性(創(chuàng)建后大小不變)。
pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
data可以是列表[1,2,3]
pd.Series([1,2,3])
可以是字符串[“a”,"b","c"]
pd.Series(["a","b","c"])
可以是數(shù)組np.array([1, 2, 3])
pd.Series(np.array([1, 2, 3]))
可以是字典{1: "a", 2: "b", 3: "c"}
,這種方式把索引指定為1,2,3。
pd.Series({1:"a",2:"b",3:"c"})
1.2 Dataframe
Dataframe(二維數(shù)據(jù))是一個二維的表格,有許多有序的列,每列的數(shù)據(jù)類型可以不一樣,可以是數(shù)字(整數(shù)、浮點數(shù)等)、字符串、列表,元組,字典等python對象。Dataframe的每行每列分別有一個索引,默認從0開始。具有可變性!
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
data可以是二維列表[["a",1],["b",2],["c",3]]
,每一行都是一個列表
pd.DataFrame([["a",1],["b",2],["c",3]], columns=['abc', '123'])
data可以是二維數(shù)組np.array([[1,2],[3,4],[5,6]])
。
pd.DataFrame(np.array([[1,2],[3,4],[5,6]]), columns=['col1', 'col2'])
data可以是字典 {'Sex':["f", "f", "m"], 'Age':[10, 12, 13]}
,字典的鍵將成為列名,字典的值將成為數(shù)據(jù),這種方式需要值的長度一樣。
pd.DataFrame({"Sex":["f","f","m"],"Age":[10,12,13]})
colomns是列名,可以是字典的鍵的子集或者排序,實現(xiàn)對數(shù)據(jù)的篩選和排序。
可以通過index初始索引標簽來取出數(shù)據(jù)框data的一些列,得到字典格式的數(shù)據(jù)框,比如data = pd.DataFrame(index=data['col1'])
#就是將索引0 1 2 3用col1列的值來替代。
若數(shù)據(jù)有NaN值,可以:
pd.DataFrame([{"Sex":"f","Age":10},{"Sex":"f","Age":65,"edu":65}])
2 讀取和保存文件
2.1 載入csv文件
import pandas as pd df = pd.read_csv('data.csv')
2.2 載入excel文件
df=pd.read_excel('data.xlsx',sheet_name='Sheet1')
2.3 載入txt文件
df=pd.read_table(r"J:\data.txt", header=None)#不讀取文件第一行為列名
2.4 輸出csv文件
df.to_csv('data1.csv') #將 DataFrame 存儲為 csv 文件
3 讀取數(shù)據(jù)格式
一些常用的代碼:
data.head(10)
#讀取前10行,不填默認為5data.tail(10)
#讀取尾部10行,不填默認為5data.info()
#讀取數(shù)據(jù)基本信息,多少行多少列和每一列數(shù)據(jù)類型。有多少空值data.shape
data.index
#索引data.colomns
#列名
修改列名
- a.columns = [‘rename_col1’,‘rename_col2’]
- a.rename(columns={‘rawname_col1’:‘rename_col1’})
4 訪問某個位置的元素
4.1 讀取數(shù)據(jù)某一列:
data["Sex"]
4.2 訪問具體某個位置的元素:
有兩種方式,一種是.iloc訪問索引整數(shù),一種是.loc是訪問列標簽
4.2.1 .iloc[] #訪問位置 是具體的整數(shù)
data.iloc[:,0] #第一列的所有行
data.iloc[:,0:1]#第一列的所有行,注意在python里區(qū)間是不包含最后一個元素的,并且把0當(dāng)作初始值
data.iloc[0,1]
#第一行第二列的元素
4.2.2 .loc #訪問標簽 即列索引 列名
data.loc[0,'Sex']
#sex列所有行
data.loc[0,"Sex"]
#具體數(shù)值
5 修改數(shù)據(jù)
5.1 增減列
修改某一列的數(shù)據(jù)data['Sex']=['m','m']
加新的一列data['value']=[10,1]
加新的一行data.loc[3]=['f',10,2,1]
5.2 刪除行列
刪除某列元素data.drop('Sex',axis=1)
如果不知道列名,可以用索引選哪一列,比如第一列data.columns[0]data.drop(data.columns[0],axis=1)
刪除某行元素data.drop(0)
#刪除index為0的行
如果想刪除兩行
indices_to_drop = [1, 3] df_dropped = df.drop(indices_to_drop)
5.3 索引和切片
提取多列
提取多行
5.4 數(shù)據(jù)分析
5.4.1 描述性統(tǒng)計
data.describe()
5.4.2 判斷序列中元素是否在另一個序列中
isin()函數(shù)是一個非常有用的工具,用于檢查一個序列data(如DataFrame或Series)中的元素是否存在于另一個序列data1、列表、元組、Series或DataFrame中。
data.isin(data1)
5.4.3 刪除字符串中的某些字符(刪除功能)
使用strip()可以將字符串中指定的字符刪除,如果沒有指定,就是刪除空白格。
若給定字符,將從字符串開頭和結(jié)尾的字符開始刪除,返回剩下的部分,如果給定字符與開頭結(jié)尾不匹配,則返回原字符。
指定的字符串只要有開頭或結(jié)尾的字符就可以刪除,順序沒有關(guān)系。
5.4.4 將Series的值轉(zhuǎn)為字符串**
pandas.Series.str可以對字符串方便的做各項操作。
比如a是一個Series
我們可以看到a.str.split()中的值變?yōu)榱俗址?/p>
5.4.4 將Series中的值根據(jù)文本逗號分列(分割功能)
使用split()將可以將文本根據(jù)逗號分成多列。原理是通過指定分隔符(例子是逗號)對字符串進行切片。
利用pandas.Series.str.split假設(shè)a為Series如下所示,分隔符為逗號,設(shè)置expand=True則python自動在輸出中將分割的內(nèi)容放不同的列中,否則默認不分開。
a.str.split(',',expand=True)
5.4.5 判斷Series的某個值是不是字符串
因為有時候文件中的數(shù)字是字符串格式,想變?yōu)閒loat格式
比如看series的col1列的第二個值是不是字符串
isinstance(series['col1'][1], str)
結(jié)果輸出 True
5.4.6 Series中的值進行格式轉(zhuǎn)換
使用Series.astype轉(zhuǎn)變值得格式,比如轉(zhuǎn)為float格式:Series.astype(float)
總結(jié)
到此這篇關(guān)于python pandas詳細用法的文章就介紹到這了,更多相關(guān)python pandas用法指南內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python如何基于selenium實現(xiàn)自動登錄博客園
這篇文章主要介紹了Python如何基于selenium實現(xiàn)自動登錄博客園,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12Python使用Pickle模塊進行數(shù)據(jù)保存和讀取的講解
今天小編就為大家分享一篇關(guān)于Python使用Pickle模塊進行數(shù)據(jù)保存和讀取的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04python openCV實現(xiàn)攝像頭獲取人臉圖片
這篇文章主要為大家詳細介紹了python openCV實現(xiàn)攝像頭獲取人臉圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-08-08