笨辦法學(xué)分析[02]索引與數(shù)據(jù)重構(gòu)

接上篇:笨辦法學(xué)分析[01]數(shù)據(jù)導(dǎo)入
我們導(dǎo)入了對(duì)學(xué)生群體的網(wǎng)購行為調(diào)研數(shù)據(jù),今天來對(duì)數(shù)據(jù)進(jìn)行簡單的操作和替換瓣蛀。

01.訪問員編號(hào)數(shù)據(jù)重構(gòu)(替換為名稱)

我們查看數(shù)據(jù)可以觀察到辽旋,問卷中的所有答案都是用代號(hào)替代的田巴,我們可以使用pandas中的各種函數(shù)達(dá)成我們的統(tǒng)計(jì)目的毁葱,但是統(tǒng)計(jì)出的分類并不利于我們識(shí)別。因此將這些代號(hào)替換成人類易于識(shí)別的文字是必要的(咦杉女,我們?yōu)槭裁匆么?hào)呢瞻讽?在傳統(tǒng)的數(shù)據(jù)分析中人工使用代號(hào)作分類、錄入等非常高效有用熏挎,但用于計(jì)算機(jī)生成的數(shù)據(jù)時(shí)速勇,似乎分類代號(hào)反而給我們帶來了枷鎖)。


前5行數(shù)據(jù)

那么拿訪問員編號(hào)開刀吧坎拐。
首先烦磁,我們來統(tǒng)計(jì)一下訪問員有哪幾位。

#對(duì)訪問員進(jìn)行統(tǒng)計(jì)
int_data['訪問員編號(hào)'].groupby(int_data['訪問員編號(hào)']).count()
#int_data['訪問員編號(hào)']:是只將訪問員編號(hào)列輸出出來哼勇,作為統(tǒng)計(jì)數(shù)據(jù)都伪。
#groupby(int_data['訪問員編號(hào)']):是表示使用訪問員編號(hào)列進(jìn)行分類統(tǒng)計(jì)。
#count():統(tǒng)計(jì)方法為計(jì)數(shù)积担,也可以是sum()陨晶、mean()等等常用函數(shù)。

#下面是Python的輸入輸出結(jié)果
In [40]: int_data['訪問員編號(hào)'].groupby(int_data['訪問員編號(hào)']).count()
Out[40]: 
訪問員編號(hào)
1    50
2    25
3    25
4    25
dtype: int64

可以看得出來帝璧,訪問員一共4位先誉,其中訪問員1完成了50份問卷湿刽。2/3/4三個(gè)訪問員分別完成了25份問卷。
下一步谆膳,我們我們用replace方法將原始數(shù)據(jù)中的訪問員編號(hào)換成訪問員名稱叭爱,假設(shè)四位訪問員分別為:趙一撮躁、錢二漱病、孫三、李四把曼。

#替換值
int_data['訪問員編號(hào)'].replace(1, '趙一')
#可以傳入一個(gè)替換列表杨帽,進(jìn)行批量替換
int_data['訪問員編號(hào)'].replace([1, 2, 3, 4],['趙一', '錢二', '孫三', '李四'])

#以下是輸入輸出結(jié)果
int_data['訪問員編號(hào)'].replace([1, 2, 3, 4],['趙一', '錢二', '孫三', '李四'])
Out[43]: 
問卷編號(hào)
1      趙一
2      趙一
3      趙一
4      趙一
5      趙一
      ···
120    趙一
121    趙一
122    趙一
123    趙一
124    趙一
125    趙一
Name: 訪問員編號(hào), dtype: object

不過這里有個(gè)問題,使用replace方法替換值并不改變?cè)瓟?shù)據(jù)嗤军。我們將改變后的數(shù)據(jù)重新賦值給int_data或者單獨(dú)列出“訪問員編號(hào)數(shù)據(jù)”:

#單獨(dú)列出訪問員姓名數(shù)據(jù)
Surveyor=int_data['訪問員編號(hào)'].replace([1, 2, 3, 4],['趙一', '錢二', '孫三', '李四'])
Surveyor.groupby(Surveyor).count()

#以下是輸入輸出結(jié)果:
Surveyor=int_data['訪問員編號(hào)'].replace([1, 2, 3, 4],['趙一', '錢二', '孫三', '李四'])
Surveyor.groupby(Surveyor).count()
Out[48]: 
訪問員編號(hào)
孫三    25
李四    25
趙一    50
錢二    25
dtype: int64

這樣我們就完成了數(shù)據(jù)的替換工作注盈。
如果要更改原始數(shù)據(jù),只需要:

int_data['訪問員編號(hào)']=int_data['訪問員編號(hào)'].replace([1, 2, 3, 4],['趙一', '錢二', '孫三', '李四'])
02.索引重構(gòu)

附加一個(gè):實(shí)際上像“訪問員編號(hào)”叙赚、“學(xué)欣峡停”、“性別”之類的字段震叮,是中文字符胧砰,想把它替換為英文的。
很簡單苇瓣,使用rename方法可以解決尉间。

#重命名列名稱,以字典形式傳入
int_data.rename(columns={'訪問員編號(hào)':'Surveyor',
                         '學(xué)校':'University',
                         '性別':'Sex'})

#以下是輸出結(jié)果(只截取了部分?jǐn)?shù)據(jù)击罪,注意對(duì)比列標(biāo)題columns)
In [53]: int_data.rename(columns={'訪問員編號(hào)':'Surveyor',
                         '學(xué)校':'University',
                         '性別':'Sex'})
Out[53]: 
      Surveyor University Sex  3    4    5  5.1  5.2  5.3  5.4 ... 13.3 13.4  \
問卷編號(hào)                                                           ...             
1            1          C   B  B  NaN  NaN  NaN  NaN  NaN  NaN ...  NaN  NaN   
2            1          C   B  A    A    A    B    C    D    E ...  NaN  NaN   
3            1          C   B  A    B    A  NaN  NaN  NaN  NaN ...  NaN  NaN   
4            1          C   B  A    A    A    B    C  NaN  NaN ...  NaN  NaN   
5            1          C   B  A    A    A  NaN  NaN    D    E ...  NaN  NaN   

當(dāng)然哲嘲,重命名索引列的名稱是可以這樣的:

#重命名索引列的名稱(問卷編號(hào)改成“Qsnber”)
In[57]:int_data.index.names=['Qsnber']
In[58]:int_data
Out[58]: 
        訪問員編號(hào) 學(xué)校 性別  3    4    5  5.1  5.2  5.3  5.4 ... 13.3 13.4   14 14.1  \
Qsnber                                               ...                       
1           1  C  B  B  NaN  NaN  NaN  NaN  NaN  NaN ...  NaN  NaN    A    B   
2           1  C  B  A    A    A    B    C    D    E ...  NaN  NaN    A    B   
3           1  C  B  A    B    A  NaN  NaN  NaN  NaN ...  NaN  NaN    A    B   
4           1  C  B  A    A    A    B    C  NaN  NaN ...  NaN  NaN    A    B   
5           1  C  B  A    A    A  NaN  NaN    D    E ...  NaN  NaN    A    B     
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吐绵,隨后出現(xiàn)的幾起案子嘉蕾,更是在濱河造成了極大的恐慌尼斧,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囱怕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡丧枪,警方通過查閱死者的電腦和手機(jī)光涂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拧烦,“玉大人忘闻,你說我怎么就攤上這事×挡” “怎么了齐佳?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵私恬,是天一觀的道長。 經(jīng)常有香客問我炼吴,道長本鸣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任硅蹦,我火速辦了婚禮荣德,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘童芹。我一直安慰自己涮瞻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布假褪。 她就那樣靜靜地躺著署咽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪生音。 梳的紋絲不亂的頭發(fā)上宁否,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音缀遍,去河邊找鬼慕匠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瑟由,可吹牛的內(nèi)容都是我干的絮重。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼歹苦,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼青伤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起殴瘦,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤狠角,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蚪腋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丰歌,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年屉凯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了立帖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悠砚,死狀恐怖晓勇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤绑咱,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布绰筛,位于F島的核電站,受9級(jí)特大地震影響描融,放射性物質(zhì)發(fā)生泄漏铝噩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一窿克、第九天 我趴在偏房一處隱蔽的房頂上張望骏庸。 院中可真熱鬧,春花似錦让歼、人聲如沸敞恋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至补箍,卻和暖如春改执,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坑雅。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國打工辈挂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人裹粤。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓终蒂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親遥诉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拇泣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容