import pandas as pd
基本操作
- 創(chuàng)建DataFrame數(shù)據(jù)集,列名為A、B、C
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
- 提取指定值
df.loc[0] # 提取索引為0的行,即第一行
df.A # 提取A列, 方法一
df['A'] # 提取A列,方法二
df.A[0] # 提取A列第一行數(shù)據(jù),或用df['A'][0], df.loc[0]['A']
df[df.A<3] # 條件取值,提取A列值小于3的行
df.loc[df.A<3, 'B'] # 提取出符合A列值小于3的B列值
df.loc[df.A<3, 'B'] = 1 # 為符合條件的B列賦值為1
# 多個(gè)條件取值 and
df.loc[(df.A<3) & (df.B>4), 'C']
# 多個(gè)條件取值 or
df.loc[(df.A<3) | (df.B>4), 'C']
# 使用lambda表達(dá)式提取出A列值小于3的行
df[df.A.apply(lambda x: x<3)]
- 改變列名
# 方法一,統(tǒng)一改變列名
df.columns = ['a', 'b', 'c']
# 方法二,改變某一個(gè)或多個(gè)列名
df.rename(columns={'A': 'a',
'B': 'b'},
inplace=True) # inplace默認(rèn)值為False不會(huì)改變df本身
- 刪除指定行或列
df.drop(0) # 刪除第一行
df.drop([0, 1]) # 刪除第一行和第二行
df.drop(['A', 'B'], axis=1) # 刪除A和B兩列,axis沒有賦值時(shí)默認(rèn)為0表示行
# 上述做法會(huì)獲得刪除后的數(shù)據(jù)集,但不會(huì)改變df本身
# 刪除第一行并賦值給df
df = df.drop(0)
- 刪除列后重設(shè)索引值從0排序
df.reset_index(drop=True, inplace=True)
- 復(fù)制數(shù)據(jù)集
ddf = df.copy()
- 快速查看數(shù)據(jù)集情況
ddf.head() # 返回ddf前五行
ddf.head(3) # 返回ddf前三行
ddf.info() # 返回ddf每列的數(shù)據(jù)概覽
ddf.A.isnull() # 返回A列缺失值
- 改變某列的數(shù)據(jù)類型
ddf.A.dtype # 查看A列的數(shù)據(jù)類型
ddf.A = ddf.A.astype(str) # 將A列的數(shù)據(jù)改為字符串型
- 賦值
df.A.replace(1, 5, inplace=True) # 將A列中的全部1替換為5
# 將A列的第一個(gè)值改為 'None'
df.loc[0, 'A'] = 'None' # 0為索引值
# 將A列的1、2、3分別改為a、b、c
df.A = df.A.map({1:'a', 2:'b', 3:'c'})
# 根據(jù)A列的a、b、c三個(gè)值,新增三列啞變量
pd.get_dummies(df.A)
- 將數(shù)據(jù)集儲(chǔ)存至本地csv
df.to_csv('df_name.csv')
# 避免寫入索引 index
df.to_csv('df_name.csv', index=False)
# 避免寫入標(biāo)題 header
df.to_csv('df_name.csv', header=False)
簡單計(jì)算
df.A.value_counts() # 返回A列中不同值的個(gè)數(shù)
df.B.mean() # B列值計(jì)算平均數(shù)
df.B.std() # B列值計(jì)算樣本標(biāo)準(zhǔn)差
df.B.values.std() # B列值計(jì)算總體標(biāo)準(zhǔn)差
(更新中)