python pandas dataframe基本使用整理

dataframe是一種表格型的數據存儲結構,可以看作是幾個serie的集合。dataframe既有行索引,也有列索引。
以下代碼環境為google colab/jupyter notebook。
接下來就對dataframe的基本使用進行整理。
dataframe也從屬于pandas模塊,因此還是老規矩,先import pandas。

import pandas as pd
import numpy as np

1. dataframe的創建

dataframe的創建有很多方法,下面列舉了幾種主要的創建方法。

a. 通過numpy ndarray創建dataframe

在創建dataframe時,可以自定義行索引index和列索引columns。

arr = np.random.randn(6,4)
index_rows = pd.date_range('today', periods=6)
index_columns = ['A','B','C','D']
dataframe1 =
pd.DataFrame(arr,index=index_rows,columns=index_columns)
dataframe1

運行結果:
在這里插入圖片描述

b. 通過字典dictionary創建dataframe

data = {'country': ['China','Japan','France'],'capital': ['Beijing','Tokyo','Paris'],'population' : [1400000000, 16000000, 60000000]}
index = np.array([1,2,3])
dataframe2 = pd.DataFrame(data,index=index)
dataframe2
# 字典中每個鍵對應每一列的列標

運行結果:
在這里插入圖片描述

2.dataframe的基本操作

a.使用head/tail取dataframe中前n行或后n行

dataframe2.head(2) #使用head取dataframe中的前n行

運行結果 :
在這里插入圖片描述

dataframe2.tail(2) #使用tail取dataframe中的后n行

運行結果:
在這里插入圖片描述

b. 獲取dataframe的統計學屬性

dataframe2.describe()

運行結果 :
在這里插入圖片描述

c. 翻轉dataframe的行與列

dataframe2.T

運行結果 :

在這里插入圖片描述

d. 排序

dataframe2.sort_values(by='population') # 升序排列 對一整行都進行移動變換

運行結果 :
在這里插入圖片描述

e. 切片

dataframe2[0:2] # [0,2)包括前不包括后,例子中就是輸出第0行和第1行

運行結果 :
在這里插入圖片描述

f. 通過列名tag查詢

dataframe2[['country','population']]  #只顯示country和population兩列,如果想要存儲在另外一個dataframe中只需要用賦值語句

運行結果 :
在這里插入圖片描述

g. 備份dataframe

使用dataframe的copy方法對dataframe進行備份。使用copy方法的好處是,兩個dataframe是完全分開的,改變其中一個的任何屬性都不會對另外一個dataframe造成影響。而如果使用賦值語句進行備份,兩個dataframe實際是完全相連的,任意改變其中一個dataframe的屬性都會對兩者進行同時改變。
例如在下面的例子中,我們使用copy方法,備份dataframe2在dataframe3中并改變dataframe3的行索引,我們會發現dataframe2沒有因此和dataframe3同步變化。

dataframe3 = dataframe2.copy()
dataframe3.index = ['a','b','c']
print(dataframe2)
print(dataframe3)

運行結果:
在這里插入圖片描述
使用賦值語句進行備份,兩個dataframe會進行同步變化。
例如這里我們使用賦值語句后,改變dataframe3的行索引,dataframe2的行索引也同步改變了。

dataframe3 = dataframe2
dataframe3.index = ['a','b','c']
print(dataframe2)

運行結果 :
在這里插入圖片描述

h.使用loc對指定位置的數值進行操作

dataframe3.loc['c','population'] = np.nan #可以對指定位置的數值進行操作
dataframe3

運行結果 :
在這里插入圖片描述

i. 對dataframe中未定義的值進行操作

df4.fillna(500000) # 給所有未定義的數值賦值

運行結果 :
在這里插入圖片描述

df5 = dataframe3.copy()
df5.dropna(how='any') # 刪除有nan未定義數值的一行

運行結果 :
在這里插入圖片描述

df5 = dataframe3.copy().T # 如果我們transpose翻轉這個dataframe 就會將population這一行整個刪去
df5.dropna(how='any')

運行結果 :
在這里插入圖片描述

3. dataframe的文件操作

dataframe可以對csv文件,xlsx文件,txt等文件進行讀寫操作。

dataframe3.to_csv('country_count.csv') # 將dataframe寫入csv文件
# 可以在括號中使用絕對路徑調整文件生成的位置 默認位置為當前文件夾下生成
df_country = pd.read_csv('country_count.csv',index_col=None) # 讀取csv文件
dataframe3.to_excel('country_count.xlsx',sheet_name='sheet1')# 將dataframe寫入excel表格
dataframe_fromexcel = pd.read_excel('country_count.xlsx',sheet_name='sheet1',index_col=None)# 讀取excel表格

4. dataframe的可視化

%matplotlib inline
df = pd.DataFrame(np.random.randn(50,4),index=pd.date_range('today',periods=50),columns=['A','B','C','D'])
df.cumsum()
df.plot()

運行結果 :
在這里插入圖片描述

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

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

相關文章

常見開源分布式存儲系統

對比說明 /文件系統 TFS FastDFS MogileFS MooseFS GlusterFS Ceph 開發語言 C C Perl C C C 開源協議 GPL V2 GPL V3 GPL GPL V3 GPL V3 LGPL 數據存儲方式 塊 文件/Trunk 文件 塊 文件/塊 對象/文件/塊 集群節點通信協議 私有協議(T…

[十二省聯考2019]皮配

題目鏈接 選一個派系和一個陣營可以唯一確定一名導師 因為每一個陣營里的導師都分別來自不同派系,所以k0時,對陣營的選擇是不影響對派系的選擇的 唯一的限制就是同城市的要在同一個陣營 所以以每個城市為物品,物品大小為該城市的人數&#xf…

機器學習理論梳理1: PCA主成分分析

機器學習的理論部分學習知識點比較亂且雜。我這里通過幾篇文章,簡單總結一下自己對機器學習理論的理解,以防遺忘。第一篇文章主要概述了機器學習的基本任務以及一個常用的降維方法,主成分分析。 機器學習的基本任務 機器學習能實現許多不同…

29 _react-router說明

一、SPA的理解 1.單頁面web應用(single page web application ,SPA) 2.整個應用只有一個完整的頁面 3.點擊頁面中的鏈接不會刷新頁面,本身也不會向服務器發請求 4.當點擊路由鏈接時,只會做頁面的局部更新 5.數據都需要通過ajax請求獲取,并在前…

Java程序員如何快速理解Kubernetes

我們希望微服務是可復制的,可替換的工作節點,這樣可以輕松進行升級或降級,同時無需任何停機時間,并花費最少代價的管理。我們可以說我們希望他們成為我們的小黃人(minions)。本文我們將通過一個簡單的例子來…

NLP基礎 : HMM 隱馬爾可夫模型

Hidden Markov Model, HMM 隱馬爾可夫模型,是一種描述隱性變量(狀態)和顯性變量(觀測狀態)之間關系的模型。該模型遵循兩個假設,隱性狀態i只取決于前一個隱性狀態i-1,而與其他先前的隱形狀態無關。觀測狀態也只取決于當前的隱形狀態。因此我們…

關于秒殺系統優化方向

今天聽了一節咕泡學院的公開課,有收獲。 秒殺系統的特點: 1.限時;2.限量供應;3.并發量大;如何優化: 1.客戶端數據緩存。 2.CDN加速。 3.nginx動靜分離,靜態資源緩存,負載均衡。 4.se…

Mysql插入很慢,找到了稍微快點的方法

MYSQL批量插入數據庫實現語句性能分析 假定我們的表結構如下 代碼如下 CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( 50 ) NOT NULL, value VARCHAR( 50 ) NOT NULL, other_value VARCHAR( 50 ) NOT NULL ) 通常情況下單條插入的sql語句我們會這么寫&…

Linux - 時間相關命令 - ntpdate, date, hwclock

1. 概述 最近也不知道寫啥了, 把之前的老文檔整理一下, 湊個數什么的配置時間這種工作, 偶爾還是要用一下主要描述 3 個命令的簡單適用 ntpdatehwlock2. ntpdate 1. 概述 用于同步時鐘的命令2. 機制 通常是有一個服務器對外提供時間客戶端可以與時間服務器同步ntp 是他們之間交…

RUNOOB python練習題1

用來練手的python 練習題,原鏈接 : python練習實例1 題干 : 有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少? import numpy as np cen np.array([1,2,3,4]) tens np.array([1,2,3,4])…

mysql explain用法和結果的含義

explain顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優化的查詢語句。 使用方法,在select語句前加上explain就可以了: 如: explain select surname,first_name form a,b where a.idb.id EXPLAIN列…

日志模塊logging用法

一、常用日志記錄場景及最佳解決方案: 日志記錄方式 最佳記錄日志方案 普通情況下,在控制臺顯示輸出 print() 報告正常程序操作過程中發生的事件 logging.info()(或者更詳細的logging.debug()) 發出有關特定事件的警告 warnings.warn()或者loggin…

MySQL 億級數據需求的優化思路(一),交易流水記錄的查詢

對MySQL的性能和億級數據的處理方法思考,以及分庫分表到底該如何做,在什么場景比較合適? 比如銀行交易流水記錄的查詢 限鹽少許,上實際實驗過程,以下是在實驗的過程中做一些操作,以及踩過的一些坑&#…

RUNOOB python練習題2

用來練手的python 練習題,原鏈接 : python練習實例2 題干 : 企業發放的獎金根據利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的…

dubbo負載均衡策略和集群容錯策略

dubbo負載均衡策略 random loadbalance 默認情況下,dubbo是random load balance隨機調用實現負載均衡,可以對provider不同實例設置不同的權重,會按照權重來負載均衡,權重越大分配流量越高,一般就用這個默認的就可以了。…

MySQL 億級數據需求的優化思路(二),100億數據,1萬字段屬性的秒級檢索

最近在研究億級數據的時候,無意中看到了一個關于寫58同城的文章 https://blog.csdn.net/admin1973/article/details/55251499?fromtimeline 其實上面講的versionext的方式以及壓縮json的思路,對于我來講都可以看得懂,想得通,其…

RUNOOB python練習題3

用來練手的python 練習題,原鏈接 : python練習實例3 拿到題目就寫了如下代碼,思路是因為使用**0.5進行開平方操作時,python會將數據類型自動轉換為float單精度浮點型。這里利用提取其整數部分,來判斷這個數是否是完全平方數。 z…

使用git將項目上傳到github(最簡單方法)

使用git將項目上傳到github(最簡單方法) 首先你需要一個github賬號,所有還沒有的話先去注冊吧! https://github.com/ 我們使用git需要先安裝git工具,這里給出下載地址,下載后一路直接安裝即可&#xff1…

數據庫 概念詳解

數據庫 概念詳解 一、MySQL MySQL 事務 MySQL 鎖 MySQL 二、Redis 三、MongoDB 四、Memcached 轉載于:https://www.cnblogs.com/guozepingboke/p/10743648.html

RUNOOB python練習題4

用來練手的python習題其四, 原題鏈接: python練習實例4 題干: 輸入某年某月某日,判斷這一天是這一年的第幾天? 這個題目比較簡單,只需要注意閏年和非閏年的區別就可以了。我這里使用numpy矩陣存儲每個月的天數,之后用…