python pandas常用資料處理方法

2021-08-29 07:49:34 字數 2764 閱讀 1263

pandas

1、header = 0 不同於 header = none

header = 0 表示 第0行為列

header = none 表示讀取的時候 認為沒有標題,全是資料

可以用 skiprows = 1 跳過列名

2、pandas 獲取指定的行列資料

df.iloc[0:2,[0,3]] #讀取 第 [0,2)行的第[0,3)列

3、建立 df = datafram(data,index = '',columns = '')

dates = pd.date_range('20130101', periods=3)

data = pd.dataframe(data,index=dates,columns=['a','b','c'])

4、檢視列標題,行標題,資料描述,轉置

df.columns

df.index

df.describe() #帶括號 檢視資料描述,包括均值,方差,分位點

df.t

5、排序

df.sort_values(by='b') # 按照 列 b 進行排序 預設公升序

df.sort_index(axis=1,ascending=false) # 根據索引 排序 axis = 1 表示 分別對每一行排序,axis= 0表示對每一列排序

ascending = false 表示按照降序排序

6、行列選擇

df.loc[:,['a','b']] #選擇所有行的 a,b列

df[0:3] #選擇[0,3)行

df.iloc[3] #選擇第三行資料

df.iloc[3:5,0:2] # [3,5)行 [0,2)列資料

df.iloc[3:5,0:2] # 這裡都是切片

df.iloc[[1,2,4],[0,2]] #用列表進行跳躍選擇 行列 注意這樣的話 行選擇需要是列表需要多加一層 [[1,2,3],[0:2]]是錯誤的

df.iloc[1,1] = df.iat[1,1] #獲取位置[1,1] 的元素(單個元素可以不寫成列表形式)

7、資料選擇、賦值

(1)對某一列進行資料選擇

df[df.a > 0] # 判斷 a列值是否大於0 返回boolean值

df[df > 0] = -df # 把 df(可以看作矩陣) 中大於0的元素 取反

(2) 把 d列賦值為 np.array()

df.loc[:,'d'] = np.array([5] * len(df))

(3)根據條件對某一列值進行修改

下面就是找出滿足第14列條件的情況,修改第14列,當然這裡可以修改別的列,只要條件滿足,可以選擇你想要修改的列

df.loc[df[14] == "<=50k.",[14]] = "<=50k"

df.loc[df[14] == ">50k.",[14]] = ">50k"

8、缺失值處理

(1)去除包含缺失值的行(只要有缺失值就去掉)

df1.dropna(how='any')

(2)把缺失值改為5

df1.fillna(value=5)

(3)判斷是否是缺失值

pd.isna(df1) # 返回 bool矩陣,注意 是 用 pd呼叫 df

9、資料統計

(1)求均值

df.mean(axis = 1) # 對每一行求均值 預設為按照列求均值

10、groupby用法

data = [

['男',20,98],

['男',24,88],

['女',35,89],

['女',27,90]

] df = pd.dataframe(data,columns=['gender','age','score'])

print(df)

print(df.groupby("gender").size())

print(df.groupby("gender").mean())

output:

gender age score

0 男 20 98

1 男 24 88

2 女 35 89

3 女 27 90

gender

女 2

男 2

dtype: int64

age score

gender

女 31.0 89.5

男 22.0 93.0

x = 

print(x)

df = pd.dataframe(,index=range(len(x)))

print(type(df['x'].values)) # ,其實內部每行仍然是list

print(np.asarray(df['x'].values))

# 把外層的ndarray變為list,df['x'].values就變成了 list[list,list],即lists

print(np.asarray(list(df['x'].values)))

'''output:

[[1, 2, 3], [4, 5, 7]]

[list([1, 2, 3]) list([4, 5, 7])]

[[1 2 3]

[4 5 7]]

'''

參考:

官方10分鐘教程

Python Pandas常用方法

1 pandas dataframe 基礎 import numpy as np import pandas as pd 建立 dataframe dic df pd.dataframe dic 字典轉化為dataframe 外部檔案讀入dataframe dic2 pd.read csv f u ...

Python pandas連線mysql資料庫

首先安裝包 pip install pandas pip install sqlalchemy pip install pymysql 初始化資料庫連線 import pandas as pd from sqlalchemy import create engine 初始化資料庫連線 按實際情況依次...

Python Pandas常用命令彙總

dataframe 別名 df series 別名 s import pandas as pd import numpy as nppd.read csv filename 匯入csv格式檔案中的資料 pd.read table filename 匯入有分隔符的文字 如tsv 中的資料 pd.rea...