pandas基本操作 1

2021-09-14 07:45:19 字數 3918 閱讀 2510

這裡來介紹一下pandas。由於知識點比較多,決定分幾篇介紹。

import numpy as np

import pandas as pd

#pandas是基於numpy的乙個開源python庫。

#我認為相當於python版excel

#series是一種一維陣列,是基於ndarray設計的,但是他多了乙個功能就是自定義標籤。

#說的明白點就是索引。因此可以通過這個索引來訪問陣列中的資料

#建立語法如下:

#my_series=pd.series(data,index)

countries=['usa','france','china','england']

my_data=[100,200,300,400]

my_series=pd.series(my_data,countries)

my_series

usa 100

france 200

china 300

england 400

dtype: int64

#注意,index是可以省略的,這時系統會自動已預設index進行索引,這時的series就類似陣列了。

pd.series(my_data)

0 100

1 200

2 300

3 400

dtype: int64

#從numpy陣列物件來建立series:

np_arr=np.array(my_data)

pd.series(np_arr)

0 100

1 200

2 300

3 400

dtype: int64

#從字典來建立series似乎更方便

#pandas會自動把字典的鍵值設定成series的index,並將對應的values放在和索引對應的data裡

#這也證明了,pandas的series可以存放各種不同型別的物件。

my_dict=

pd.series(my_dict)

a 50

b 60

c 70

d 80

dtype: int64

#從series中獲取資料,和字典操作基本一樣。

my_dict['b']

60

#對series進行算術運算操作

#基於index進行,可以用加減乘除這樣的運算子對兩個series進行運算。

#結果均以浮點數的形式儲存,以免丟失精度。

series1=pd.series([1,2,3,4],['shandong','wuhan','changsha','hangzhou'])

series2=pd.series([4,7,9,2],['beijing','tianjin','shijiazhuang','hangzhou'])

#如果pandas在兩個series裡找不到相同的index,對應位置就返回空值nan。

series1-series2

beijing nan

changsha nan

hangzhou 2.0

shandong nan

shijiazhuang nan

tianjin nan

wuhan nan

dtype: float64

series1+series2

beijing nan

changsha nan

hangzhou 6.0

shandong nan

shijiazhuang nan

tianjin nan

wuhan nan

dtype: float64

#dataframes

#pandas的dataframe是一種2維資料結構,資料以**的形式儲存,分為若干行和列。

#下面用多個series來構建乙個dataframe。道理很簡單,多個一維陣列組合起來就變成了二維陣列

df=pd.dataframe(df)

name age size

東 齊 32 2332

南 楚 42 4212

西 秦 32 3242

東北 燕 45 4455

北 趙 14 1324

中北 魏 22 2232

中 韓 34 3784

#用乙個字典來建立dataframe

data=

my_df=pd.dataframe(data,index=['first','second','last'])

my_df

name age year

first dwd 32 2012

second dwds 43 2123

last fgerd 1231 2312

my_df[['age','year']]

age year

first 32 2012

second 43 2123

last 1231 2312

#給dataframe增加資料列

#1.可以從頭開始定義乙個pd.series,放到表中.

#2.可以用現有的列來產生需要的新列。

#1my_df['size']=pd.series([323,123,435],['first','second','last'])

my_df

name age year size

first dwd 32 2012 323

second dwds 43 2123 123

last fgerd 1231 2312 435

#2從其他列中創造新列

my_df['pip']=my_df['age']+my_df['size']

my_df=pd.dataframe(my_df)

my_df

name age year size pip

first dwd 32 2012 323 355

second dwds 43 2123 123 166

last fgerd 1231 2312 435 1666

#從dataframe刪除行/列。用drop()函式。

#使用時需要指定具體的刪除方向,axis=0對應的是行row,axis=1對應的是列column。

my_df.drop('pip',axis=1)

name age year size

first dwd 32 2012 323

second dwds 43 2123 123

last fgerd 1231 2312 435

my_df.drop('first',axis=0)

name age year size pip

second dwds 43 2123 123 166

last fgerd 1231 2312 435 1666

未完待續

Pandas基本操作

常用技巧 1 讀取檔案 2 初步設定 最大顯示1000行 最大顯示20列 最大精度 3 去重 所有列相同為重複 k1相同為重複,保留最後乙個 預設保留第乙個 4 顯示當前路徑 5 jupyter下畫圖 6 計算運算時間 7 建立新變數 8 刪除乙個變數 9 刪除一行觀測 10 顯示前三行 11 顯示...

pandas基本操作

pd.read csv filename 從csv檔案匯入資料 pd.read excel filename 從excel檔案匯入資料 pd.read sql query,connection object 從sql表 庫匯入資料 pd.read json json string 從json格式的字...

pandas的基本操作

資料讀寫 讀入mysql資料庫資料 匯入第三方模組 import pymysql 連線mysql資料庫 conn pymysql.connect host localhost user root password test database test port 3306 charset utf8 讀...