pandas 入門

pandas簡介:pandas包含的數據結構和數據處理工具的設計使得利用進行數據清洗和數據分析非常快捷;與numpy的區別,pandas用來處理表格型或異質型數據的,而numpy更適合處理同質型的數值類數據。

1、Series簡介

  1、Series是一種一維的數組型對象,包含以一個值序列,并且包含數組標簽(稱為索引),

pd.Series([4,7,-5,9])    # 不指定標簽時,默認索引值和numpy數組相似
>>>Out[108]: 
0    4
1    7
2   -5
3    9
dtype: int64pd.Series([4,7,-5,9],index=['b','a','c','d'])  # 指定標簽,標簽可以是字符串
>>>Out[109]: 
b    4
a    7
c   -5
d    9
dtype: int64

  2、Series與numpy函數相類似的操作風格:布爾值過濾數據、與標量相乘、應用數學函數等,這些操作將保持索引值鏈接。

obj = pd.Series([4,7,-5,9],index=['b','a','c','d'])
obj
>>>Out[111]: 
b    4
a    7
c   -5
d    9
dtype: int64
obj2[obj2
> 0]  # 布爾值過濾obj2 * 2      # 標量操作 np.exp(obj2)    # 數學函數操作'b' in obj2    # 邏輯判斷 'e' in obj2

  

  3、從兩外一個角度考慮Series,可以認為它是一個長度固定且有序的字典。可以將字典型的數據直接轉換成Series型數據,并且在將字典傳遞給Series構造函數時,可以通過指定字典鍵的順序使產生的Series保持一定的順序。

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
obj1 = pd.Series(sdata)
obj1
>>>Out[5]: 
Ohio      35000
Oregon    16000
Texas     71000
Utah       5000
dtype: int64states = ['California', 'Ohio', 'Oregon', 'Texas']    # 指定標簽順序
obj2 = pd.Series(sdata,index=states)
obj2                                
>>>Out[9]:                           *** NaN使是pandas標記缺失值或NA值的方式
California NaN Ohio
35000.0 Oregon 16000.0 Texas 71000.0

pd.isnull(obj2)      #?pandas中使用isnull和notnull函數來檢查數據缺失。

>>>Out[10]:
California True
Ohio False
Oregon False
Texas False
dtype: bool

  4、Series自動對齊索引和Series對象自身和其索引都有name屬性

***前面的obj1和 obj2相加
obj1 + obj2 >>>Out[13]: California NaN Ohio 70000.0 Oregon 32000.0 Texas 142000.0 Utah NaN dtype: float64

obj2.name = 'population'    # 指定name屬性
obj2.index.name = 'state'

obj2
>>>Out[15]:
state
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
Name: population, dtype: float64

?

?

2、DataFrame簡介

  1、DataFrame表示的是矩陣的數據表,既有行索引也有列索引,每一列可以是不同的值類型;DataFrame本身是二維的,但是可以分層索引在DataFrame中展現更高維度的數據。

  2、DataFrame有多種創建方式,常用方式是利用包含等長度列表或NumPy數組的字典來形成DataFrame;如果指定順序,DataFrame的列將會按照指定順序排列;

data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],'year': [2000, 2001, 2002, 2001, 2002, 2003],'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
import pandas as pd
frame = pd.DataFrame(data)
frame
>>>Out[5]: pop   state  year
0  1.5    Ohio  2000
1  1.7    Ohio  2001
2  3.6    Ohio  2002
3  2.4  Nevada  2001
4  2.9  Nevada  2002
5  3.2  Nevada  2003

pd.DataFrame(data, columns=['year', 'state', 'pop'])        # DataFrame的列會按照指定的順序排列
>>>Out[6]:
year state pop
0 2000 Ohio 1.5
1 2001 Ohio 1.7
2 2002 Ohio 3.6
3 2001 Nevada 2.4
4 2002 Nevada 2.9
5 2003 Nevada 3.2

frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],    # 若傳入的指定的列不存在,將會出現缺失值;可以修改默認標簽
index=['one', 'two', 'three', 'four','five', 'six'])              
frame2
>>>Out[8]:
year state pop debt
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 NaN
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 NaN
five 2002 Nevada 2.9 NaN
six 2003 Nevada 3.2 NaN

?

  3、DataFrame中的一列可以按照字典標記或屬性那樣檢索為Series.? 格式:frame2['state']、frame2.year;x.columns會給出所有的標簽。

frame2.year
>>>Out[10]: 
one      2000
two      2001
three    2002
four     2001
five     2002
six      2003
Name: year, dtype: int64

  4、對于大型的DataFrame,head()方法將來列出頭部的5行;DataFrame中選取的列是數據的視圖,而不是復制,因此對Series的修改會映射到DataFrame中,需要復制一列的話,采用Series的copy方法,格式:pd.Series.copy(x.column);如果需要復制DataFrame,格式:x.copy([len])。

  5、采用包含字典的嵌套字典創建DataFrame;

pop = {'Nevada': {2001: 2.4, 2002: 2.9},'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
frame3 = pd.DataFrame(pop)
frame3
>>>Out[34]:             # 字典的鍵作為列,內部字典的鍵值作為行Nevada  Ohio
2000     NaN   1.5
2001     2.4   1.7
2002     2.9   3.6

  6、pandas中的索引對象是用于存儲軸標簽和其他元數據的,在構造Series和DataFrame時,使用的任意數組或標簽序列都可以在內部轉換成索引對象,索引對象也包含一系列方法,p135。

obj = pd.Series(range(3), index=['a', 'b', 'c'])
index = obj.index
index    # 索引對象是不可變的,用于無法對索引對象進行修改(嘗試修改時會報錯);
>>> Out[10]:                           
Index(['a', 'b', 'c'], dtype='object')

?

轉載于:https://www.cnblogs.com/Chris-01/p/11444200.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391444.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391444.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391444.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

傳智播客軟件測試第一期_播客:冒險如何推動一位軟件工程師的職業發展

傳智播客軟件測試第一期On this weeks episode of the freeCodeCamp podcast, Abbey chats with developer and wearer of many hats Princiya about how she changed careers, moved to Berlin, and worked her way up to a lead role.在本周的freeCodeCamp播客節目中&#xf…

爬蟲神經網絡_股市篩選和分析:在投資中使用網絡爬蟲,神經網絡和回歸分析...

爬蟲神經網絡與AI交易 (Trading with AI) Stock markets tend to react very quickly to a variety of factors such as news, earnings reports, etc. While it may be prudent to develop trading strategies based on fundamental data, the rapid changes in the stock mar…

Promise 原理解析與實現(遵循Promise/A+規范)

1.什么是Promise? Promise是JS異步編程中的重要概念,異步抽象處理對象,是目前比較流行Javascript異步編程解決方案之一 2.對于幾種常見異步編程方案 回調函數事件監聽發布/訂閱Promise對象這里就拿回調函數說說 1.對于回調函數 我們用Jquery的ajax獲取數…

php 數據訪問練習:投票頁面

<!--投票界面--> <html> <head> <title></title> <meta charset"UTF-8"/> <link rel"stylesheet" type"text/css" href"bootstrap.min.css"/> <script src"bootstrap.min.js"…

深入理解InnoDB(3)—索引的存儲結構

1. 索引的各種存儲結構及其優缺點 1.1 二叉樹 優點&#xff1a; 二叉樹是一種比順序結構更加高效地查找目標元素的結構&#xff0c;它可以從第一個父節點開始跟目標元素值比較&#xff0c;如果相等則返回當前節點&#xff0c;如果目標元素值小于當前節點&#xff0c;則移動到左…

有抱負/初級開發人員的良好習慣-避免使用的習慣

When youre learning to code, it can be easy to pick up some nasty habits along the way. Here are some tips to avoid common bad habits, and the good habits to keep in mind.當您學習編碼時&#xff0c;很容易在此過程中養成一些討厭的習慣。 這里有一些技巧&#xf…

業精于勤荒于嬉---Go的GORM查詢

查詢 //通過主鍵查詢第一條記錄 db.First(&user)SELECT * FROM users ORDER BY id LIMIT 1;// 隨機取一條記錄 db.Take(&user)SELECT * FROM users LIMIT 1;// 通過主鍵查詢最后一條記錄 db.Last(&user)SELECT * FROM users ORDER BY id DESC LIMIT 1;// 拿到所有的…

apache 虛擬主機詳細配置:http.conf配置詳解

Apache的配置文件http.conf參數含義詳解 Apache的配置由httpd.conf文件配置&#xff0c;因此下面的配置指令都是在httpd.conf文件中修改。主站點的配置(基本配置) (1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache軟件安裝的位置。其它指定的目錄如果沒…

深入理解InnoDB(4)—索引使用

1. 索引的代價 在了解索引的代價之前&#xff0c;需要再次回顧一下索引的數據結構B樹 如上圖&#xff0c;是一顆b樹&#xff0c;關于b樹的定義可以參見B樹&#xff0c;這里只說一些重點&#xff0c;淺藍色的塊我們稱之為一個磁盤塊&#xff0c;可以看到每個磁盤塊包含幾個數據…

[BZOJ1626][Usaco2007 Dec]Building Roads 修建道路

1626: [Usaco2007 Dec]Building Roads 修建道路 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1730 Solved: 727 [Submit][Status][Discuss]Description Farmer John最近得到了一些新的農場&#xff0c;他想新修一些道路使得他的所有農場可以經過原有的或是新修的道路互達…

雙城記s001_雙城記! (使用數據講故事)

雙城記s001Keywords: Data science, Machine learning, Python, Web scraping, Foursquare關鍵字&#xff1a;數據科學&#xff0c;機器學習&#xff0c;Python&#xff0c;Web抓取&#xff0c;Foursquare https://br.pinterest.com/pin/92816442292506979/https://br.pintere…

python:linux中升級python版本

https://www.cnblogs.com/gne-hwz/p/8586430.html 轉載于:https://www.cnblogs.com/gcgc/p/11446403.html

web前端面試總結

2019獨角獸企業重金招聘Python工程師標準>>> 摘要&#xff1a;前端的東西特別多&#xff0c;面試的時候我們如何從容應對&#xff0c;作為一個老兵&#xff0c;我在這里分享幾點我的經驗。 一、javascript 基礎(es5) 1、原型&#xff1a;這里可以談很多&#xff0c;…

783. 二叉搜索樹節點最小距離(dfs)

給你一個二叉搜索樹的根節點 root &#xff0c;返回 樹中任意兩不同節點值之間的最小差值 。 注意&#xff1a;本題與 530&#xff1a;https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/ 相同 示例 1&#xff1a; 輸入&#xff1a;root [4,2,6,1,3] 輸…

linux epoll機制對TCP 客戶端和服務端的監聽C代碼通用框架實現

1 TCP簡介 tcp是一種基于流的應用層協議&#xff0c;其“可靠的數據傳輸”實現的原理就是&#xff0c;“擁塞控制”的滑動窗口機制&#xff0c;該機制包含的算法主要有“慢啟動”&#xff0c;“擁塞避免”&#xff0c;“快速重傳”。 2 TCP socket建立和epoll監聽實現 數據結構…

linux中安裝robot環境

https://www.cnblogs.com/lgqboke/p/8252488.html&#xff08;文中驗證robotframework命令應該為 robot --version&#xff09; 可能遇到的問題&#xff1a; 1、python版本太低 解決&#xff1a;升級python https://www.cnblogs.com/huaxingtianxia/p/7986734.html 2、pip安裝報…

angular 模塊構建_我如何在Angular 4和Magento上構建人力資源門戶

angular 模塊構建Sometimes trying a new technology mashup works wonders. Both Magento 2 Angular 4 are very commonly talked about, and many consider them to be the future of the development industry. 有時嘗試新技術的mashup會產生奇跡。 Magento 2 Angular 4都…

tableau破解方法_使用Tableau瀏覽Netflix內容的簡單方法

tableau破解方法Are you struggling to perform EDA with R and Python?? Here is an easy way to do exploratory data analysis using Tableau.您是否正在努力使用R和Python執行EDA&#xff1f; 這是使用Tableau進行探索性數據分析的簡單方法。 Lets Dive in to know the …

六周第三次課

2019獨角獸企業重金招聘Python工程師標準>>> 六周第三次課 9.6/9.7 awk awk也是流式編輯器&#xff0c;針對文檔中的行來操作&#xff0c;一行一行地執行。 awk比sed更強大的功能是它支持了分段。 -F選項的作用是指定分隔符&#xff0c;如果不加-F選項&#xff0c;…

面試題字符集和編碼區別_您和理想工作之間的一件事-編碼面試!

面試題字符集和編碼區別A recruiter calls you for a position with your dream company. You get extremely excited and ask about their recruiting process. He replies saying “Its nothing big, you will have 5 coding rounds with our senior tech team, just the sta…