Pandas基本用法
Pandas基本用法
目錄1、匯入pandas庫
import pandas as pd
2、匯入檔案
.csv
使用pd.read_csv()
,常用的引數入下:
filepath_or_buffer :檔案地址,可以簡略寫也可以完整寫。
df = pd.read_csv('./datafile.csv') #假設程式碼檔案和目標檔案在一個目錄下,地址可以簡略寫 df = pd.read_csv('D:/Datasets/datafile.csv') #也可以用檔案的完整地址名來匯入
sep: str 間隔引數,一般預設為','。(因為csv檔案預設就是以逗號分隔)
header: int or list of ints. 表頭所在的行號,預設是'infer'
。
names: array-like, default None
. 給定表頭名稱。
dtype: Type name or dict of column -> type, default None
. 可以更改列資料的型別。dtype = str
或者dtype = {'Col1': str, 'Col2': int}
。
usecols: list-like or callable, default None
skiprows: list-like or integer, default None
. 跳過指定行。
skipfooter: int, default 0
. 跳過後若干行。
nrows: int, default None
. 僅讀取前若干行,對讀取大檔案有用。
na_values: scalar, str, list-like, or dict, default None
. 將指定值視為Na/Nan。
na_filter: boolean, default True
. 是否對缺失值(空字串或Na/Nan)進行標記。在讀大檔案時,如果確認沒有缺失值,則False
可以提高讀取效能。
parse_dates: boolean or list of ints or names or list of lists or dict, default False
. 將指定列解析為日期。
.xlsx
使用pd.read_excel()
.txt
使用pd.read_txt()
.xpt
使用pd.read_sas()
3、匯出檔案
pd.to_excel()
、pd.to_csv()
4、建立檔案
df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],
"values":[111,222,333,444,555,666]})
5、檢視基本資料資訊
#基本資訊
df.info()
#值
df.values
#列名稱
df.columns
#維度
df.shape
#每一列的格式
df.dtypes
#某一列的格式
df['Col1'].dtype
#判斷每一個數據是否是空值
df.isnull()
#某一列的唯一值
df['Col1'].unique()
#前若干行資料(預設是10)
df.head()
#後若干行資料(預設是10)
df.tail()
#某一列的均值
df['Col1'].mean()
#某一列的最大值(最小值用min())
df['Col1'].max()
6、資料預處理
#用指定值(如0)來填充空值,原檔案不變
df.fillna(value = 0)
#大小寫轉換
df['Col1'].str.lower()
#更改某一列資料格式
df['Col1'].astype('int')
#更改列名
df.rename(columns={'before_name': 'after_name'})
#資料替換
df.replace('before_value','after_value')
#設定索引列
df.set_index('Col1')
#重設索引
df.reset_index()
#按照特定列的值排列
df.sort_values(by = ['Col1'])
#按照索引列排列
df.sort_index
#按條件更改資料。(例:Col1列的值大於100,Col2列顯示high,否則顯示low)
df['Col1'] = np.where(df['Col2'] > 100,'high','low')
#判斷是否存在給定資料
df['Col1'].isin(['values1'])
7、資料提取
#提取特定值[行][列]
df.loc[3]
df.loc[1:3][5]
#提取經過判斷後的值
df.loc[df['Col1'].isin(['values1'])]
df.loc[df['Col1'].isin(['values1']), ['Col1','Col2']] #僅提取特定列
df.loc[(df['Col1']>100) & (df['Col1']<900)]