數(shù)據(jù)規(guī)整化

合并數(shù)據(jù)集

1.數(shù)據(jù)庫風(fēng)格的DataFrame合并:merge罩抗,join

pd.merge(df1, df2)

? on=['']拉庵,默認(rèn)將重疊列當(dāng)鍵(列名不同left_on, right_on)

? how='',默認(rèn)inner套蒂,也可'left', 'right'钞支,'outer'笛卡爾積

? suffixes=('_x', '_y'),重復(fù)列名時(shí)使用

? 其他參數(shù):

? left, right;

? left_index, right_index操刀,索引鍵連接True/False烁挟,索引上的合并

? sort=True排序,copy=True復(fù)制

df1.join(df2, how='outer'):可合并多個(gè)待有相同索引的骨坑,左連接撼嗓,也可傳入一組dataframe

2.軸向連接:pd.concat

數(shù)組的連接函數(shù):np.concatenate([arr1, arr2], axis=1)

pd.concat([s1, s2, s3])

? axis=0,默認(rèn)0產(chǎn)生新的Series 欢唾,1時(shí)產(chǎn)生DataFrame

? join='outer'

? join_axes=[]:指定要合并索引值

? keys=[]:在連接后的結(jié)構(gòu)創(chuàng)建層次化索引索s引用且警,與result.unstack()連用

? axis=1時(shí),keys就成為列頭

? 同樣邏輯使用dataframe礁遣,

? {'level 1': df1, 'level 2': df2}傳入字典:字典的鍵被當(dāng)之keys的值

? levels:外層級(jí)別的索引

? names[]:分層級(jí)別的名稱斑芜,管理層次化索引參數(shù)

? ignore_index=True,忽略索引

? verify_integrity=False:默認(rèn)運(yùn)行重復(fù)

3.合并重疊數(shù)據(jù)np.where()

全部或部分重疊時(shí):np.where(pd.isnull(a), b, a)

Series的combine_first()同樣功能祟霍,自動(dòng)補(bǔ)齊:df1.combine_first(df2)

重塑和軸向旋轉(zhuǎn)

1.重塑層次化索引:stack

stack:將列轉(zhuǎn)化為行杏头,k可傳入指定列名,dropna=True默認(rèn)濾除缺失數(shù)據(jù)沸呐,(unstuck)

2.長(zhǎng)格式旋轉(zhuǎn)為寬格式:轉(zhuǎn)置:povit

povited=data.pivot('col1', 'col2', 'col3'):參數(shù)value填充醇王,多個(gè)value參數(shù)層次化

? 快捷方式,相當(dāng)于set_index和unstack

數(shù)據(jù)轉(zhuǎn)換

1.移除重復(fù)數(shù)據(jù)

data.duplicated():檢查是否重行

data.drop_duplicates():去重行崭添,根據(jù)指定列傳入?yún)?shù)['key']

? take_last=False,默認(rèn)保留第一個(gè)

2.利用函數(shù)和映射:map
A_to_B = {'a' : 'b'}
# Series的map方法
data['B'] = data['A'].map(A_to_B)
# data['B'] = data['A'].map(lambda x: A_to_B[x])
3.值替換:replace

data.replace('要替換的值'寓娩,np.nan):替換成NaN,多個(gè)替換傳入[]呼渣,不同值的不同替換傳入{}

fillna作為特殊情況填充

4.重命名索引軸

data.index.map(str.upper/lower):僅改變大小寫

data.rename(index={}, columns={}, inplace=True):也可傳入屬性方法str.upper棘伴。inplace是否更改

5.離散化和面元?jiǎng)澐郑篶ut,qcut

cats = pd.cut(ages, [18, 25, 35, 50]) : 將年齡分組徙邻,返回的是所屬區(qū)間

參數(shù):right=False表示右開左閉

data = pd.cut(data, 4, precision=2):根據(jù)最值分為四組

屬性:

? cats.lables:所屬區(qū)間的序號(hào)
? cats.levels:所有區(qū)間
? pd.value_counts(cats):每個(gè)區(qū)間所含數(shù)量

data = pd.qcut(data, 4):按四分位數(shù)位數(shù)進(jìn)行分組排嫌,可傳入自定義分位數(shù)[0.1, 0.5, 0.9, 1.]

6.檢查和過濾異常值(離群值)

data[(np.abs(data) > 3).any(1)]:在data中所有絕對(duì)值大于3的,返會(huì)True/False缰犁。

? any()全部為false時(shí)才返回false淳地。any(1)怖糊,axis=1。

data[(np.abs(data) > 3) = np.sign(data) * 3:將數(shù)值設(shè)定在+-3之間

? np.sign()返回1和-1表示原始數(shù)據(jù)符號(hào)颇象。

7. 排列和隨機(jī)采樣:permutation
#shuffle直接改變?cè)獢?shù)據(jù)伍伤,permutation是返回不更改
sampler = np.random.permutation(5)  # 隨機(jī)重排序
df.take(sampler)
# 隨機(jī)選取3個(gè)
df.take(np.random.permutation(len(df))[:3])
8.計(jì)算指標(biāo)/啞變量

將分類變量轉(zhuǎn)換為啞變量矩陣/指標(biāo)矩陣

pd.get_dummies(df['key']):key列包含n個(gè)不同的值,就派生n列

? prefix='前綴名'遣钳,加前綴名扰魂,前綴名_列名

字符串操作

字符串對(duì)象方法 說明
split() 拆分
strip(),rstrip蕴茴,lstrip 去空格
'str'.join(obj) 連接字符劝评,也可用+
in 定位
count() 計(jì)算次數(shù)
replace() 替換
endswith, startswith 是否以''結(jié)尾或開始
join 連接,作為分隔符
find 查找(第一個(gè)位置)
rfind 查找(最后一個(gè))
index 查找倦淀,返回所在位置蒋畜。(找不到會(huì)報(bào)錯(cuò))
lower,upper
ljust撞叽,rjust 填充姻成,以符號(hào)最低寬帶。默認(rèn)空格
正則

raw string類型(不包含轉(zhuǎn)義符):r'text', r'[1-9]\d{5}'

re庫常用功能函數(shù) 說明
re.search() 第一個(gè)位置愿棋,返回match對(duì)象(在一個(gè)字符串中)
re.match() 開始位置器匹配科展,返回match(在一個(gè)字符串中)
re.findall() 所有匹配的,列表返回全部字符串
re.split() 按匹配結(jié)果分割糠雨,返回列表(在一個(gè)字符串中)<br />參數(shù)maxsplit=0最大分割數(shù)
re.finditer() 搜索字符串才睹,返回匹配結(jié)果的迭代,match對(duì)象
re.sub() 替換见秤,(在一個(gè)字符串中)<br />參數(shù):repl:替換的砂竖,count=0幾次真椿。prt

re.search(pattern, string, flags=0) pattern正則鹃答,string目標(biāo),flags控制標(biāo)記

? flags標(biāo)記:re.i, re.IGNORECASE:忽略大小寫

? re.M, re.MULTILINE:^匹配每行開始

? re.S, re.DOTALL:. 匹配所有字符

re.compile(pattern, flags=0):字符串編譯成正則表達(dá)式

pandas中矢量化的字符串函數(shù)
pandas中矢量化的字符串函數(shù) 說明
cat 連接突硝,元素級(jí)
contains 包含
count 計(jì)數(shù)
replace() 替換
endswith, startswith 是否以''結(jié)尾或開始
findall 查找(所有)
get 獲取第i個(gè)元素
join 連接测摔,作為分隔符
len 長(zhǎng)度
lower,upper
match re.match
pad 添加空白符
center =pad(side='both')
repeat 重復(fù)
slice 對(duì)Series這的各個(gè)字符串進(jìn)行截取
split 分隔
strip()解恰,rstrip锋八,lstrip 去空格
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市护盈,隨后出現(xiàn)的幾起案子挟纱,更是在濱河造成了極大的恐慌,老刑警劉巖腐宋,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件紊服,死亡現(xiàn)場(chǎng)離奇詭異檀轨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)欺嗤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門参萄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人煎饼,你說我怎么就攤上這事讹挎。” “怎么了吆玖?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵筒溃,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我沾乘,道長(zhǎng)铡羡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任意鲸,我火速辦了婚禮烦周,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怎顾。我一直安慰自己读慎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布槐雾。 她就那樣靜靜地躺著夭委,像睡著了一般。 火紅的嫁衣襯著肌膚如雪募强。 梳的紋絲不亂的頭發(fā)上株灸,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音擎值,去河邊找鬼慌烧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鸠儿,可吹牛的內(nèi)容都是我干的屹蚊。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼进每,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼汹粤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起田晚,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤嘱兼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后贤徒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芹壕,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胃惜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哪雕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片船殉。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖斯嚎,靈堂內(nèi)的尸體忽然破棺而出利虫,到底是詐尸還是另有隱情,我是刑警寧澤堡僻,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布糠惫,位于F島的核電站,受9級(jí)特大地震影響钉疫,放射性物質(zhì)發(fā)生泄漏硼讽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一牲阁、第九天 我趴在偏房一處隱蔽的房頂上張望固阁。 院中可真熱鬧,春花似錦城菊、人聲如沸备燃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽并齐。三九已至,卻和暖如春客税,著一層夾襖步出監(jiān)牢的瞬間况褪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工更耻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留测垛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓酥夭,卻偏偏與公主長(zhǎng)得像赐纱,于是被迫代替她去往敵國(guó)和親脊奋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子熬北,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350