day78-數(shù)據(jù)分析之pandas及部分linux操作

1pandas庫操作

1.1索引對象

Index對象是不可變的妖啥,因此用戶不能對其進行修改(只能對全體index進行整體修改商架,而不能對某個進行修改);不可變可以使Index對象在多個數(shù)據(jù)結(jié)構(gòu)之間安全共享侈离。

index[1] = ‘d’  # TypeError

pandas對象的一個重要方法是reindex峦筒,其作用是創(chuàng)建一個新對象氏义,它的數(shù)據(jù)符合新的索引。

obj.reindex(['a', 'b', 'c', 'd', 'e'])# 將按排序輸出數(shù)據(jù)

時間序列這樣的有序數(shù)據(jù)图云,重新索引時可能需要做一些插值處理惯悠。method選項即可達到此目的,例如竣况,使用ffill可以實現(xiàn)前向值填充

obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
obj3.reindex(range(6), method='ffill')  # 0-1填blue克婶;2-3填purplr;4-5填yellow

reindex可以修改(?)索引和列丹泉。只傳遞一個序列時鸠补,會重新索引結(jié)果的?;列可以?columns關(guān)鍵字重新索引嘀掸。

1.2刪除指定列

drop方法返回的是一個在指定軸上刪除了指定值的新對象紫岩;

new_obj = obj.drop(['d', 'c']) 

通過傳遞axis=1或axis=‘columns’可以刪除列的值

data.drop('two', axis=1) 
data.drop(['two', 'four'], axis='columns')

1.3索引、選取和過濾

obj = pd.Series(np.arange(4.), index=['a', 'b', 'c', 'd'])
obj['b'] 
obj[1] 
obj[2:4] 
obj[['b', 'a', 'd']] 
obj[[1, 3]] 

利用標簽的切片運算與普通的Python切片運算不同睬塌,其末端是包含的泉蝌;用數(shù)值切片則是包含的

obj['b':'c'] 
obj['b':'c'] = 5

?一個值或序列對DataFrame進?索引其實就是獲取一個或多個列;

data[['three', 'one']] 
data[data['three'] > 5] 
data[data < 5] = 0

1.4?loc和iloc進?選取

使?軸標簽(loc)或整數(shù)索引(iloc)揩晴,從DataFrame選擇?和列的?集

data.loc['Colorado', ['two', 'three']]  # Colorado行two勋陪、three列
data.iloc[2, [3, 0, 1]]  #第三行第4列、1硫兰、2列

1.5算術(shù)運算和數(shù)據(jù)對?

兩個series或者dataframe可以進行加操作
對于DataFrame诅愚,對?操作會同時發(fā)?在?和列上;
如果DataFrame對象相加劫映,沒有共?的列或?標簽违孝,結(jié)果都會是空;
當一個對象中某個軸標簽在另一個對象中找不到時填充一個特殊值(?如0)泳赋;
相加時雌桑,沒有重疊的位置就會產(chǎn)?NA值

df1.add(df2, fill_value=0) # 有就加,沒有這列則為0加對應(yīng)的值

DataFrame和Series之間的運算

frame - series # frame中的每行都減series

如果某個索引值在DataFrame的列或Series的索引中找不到祖今,則參與運算的兩個對象就會被重新索引以形成并集

1.6函數(shù)應(yīng)?和映射

傳遞axis=‘columns’到apply校坑,這個函數(shù)會在每?執(zhí)?

np.abs(frame) #求絕對值
f = lambda x: x.max() - x.min()
frame.apply(f) # 每列的最大值與最小值之差
frame.apply(f, axis='columns') # 對每列執(zhí)行

得到frame中各個浮點值的格式化字符串,使?applymap即可千诬;Series有一個?于應(yīng)?元素級函數(shù)的map?法

format = lambda x: '%.2f' % x
frame.applymap(format) # 保留兩位小數(shù)
frame['e'].map(format)  # 第e列保留兩位小數(shù)

1.7排序

要對?或列索引進?排序(按字典順序)耍目,可使?sort_index?法,它將返回一個已排序的新對象徐绑;DataFrame邪驮,可以根據(jù)任意一個軸上的索引進?排序
升序排序

obj.sort_index() 
frame.sort_index(axis=1) 

降序排序
按值對Series進?排序,可使?其sort_values?法泵三;排序時耕捞,任何缺失值默認都會被放到Series的末尾

frame.sort_index(axis=1, ascending=False) 
obj.sort_values() 

排序一個DataFrame時,根據(jù)一個或多個列中的值進?排序烫幕。將一個或多個列的名字傳遞給 sort_values的by選項即可

frame.sort_values(by='b') 

1.8排名

rank為各組分配一個平均排名俺抽;對數(shù)據(jù)從小到大排序;并列就取不并列時的中間值较曼;原順序不變(第二列顯示排名的序號)
rank(method='first') 根據(jù)值在原數(shù)據(jù)中出現(xiàn)的順序給出排名

obj.rank() 
obj.rank(method='first') 

也可以按降序進?排名

obj.rank(ascending=False, method='first') 

DataFrame可以在?或列上計算排名

frame.rank(axis='columns') 

如果某個索引對應(yīng)多個值磷斧,則返回一個Series;?對應(yīng)單個值的捷犹,則返回一個標量值
pandas對象擁有一組常?的數(shù)學和統(tǒng)計?法弛饭。它們?部分都屬于約簡和匯總統(tǒng)計,?于從 Series中提取單個值(如sum或mean)或從DataFrame的?或列中提取一個Series萍歉。
調(diào)?DataFrame的sum?法將會返回一個含有列的和的Series
傳?入axis=‘columns’或axis=1將會按進?和運算

df.sum(axis=1) 

NA值會?動被排除侣颂,除?整個切?(這?指的是?或列)都是NA。通過skipna選項可以禁? 該功能:

1.9計數(shù)及唯一性

unique枪孩,它可以得到Series中的唯一值數(shù)組
value_counts?于計算一個Series中各值出現(xiàn)的頻率
isin?于判斷?量化集合的成員資格(判斷a中的每個數(shù)據(jù)是否在b中有出現(xiàn))

uniques = obj.unique()
obj.value_counts() 
mask = obj.isin(['b', 'c'])

結(jié)果中的?標簽是所有列的唯一值憔晒。后?的頻率值是每個列中這些值的相應(yīng)計數(shù)

result = data.apply(pd.value_counts).fillna(0)#統(tǒng)計data中每列各數(shù)字出現(xiàn)的次數(shù),沒有出現(xiàn)的填充為0

2linux中公鑰密鑰配置

  1. cmd中進入usr/hyf/.ssh/文件夾
  2. ssh-keygen -生成密鑰和公鑰
  3. cat id_rsa.pub 查看公鑰并復(fù)制內(nèi)容
  4. ssh root@公網(wǎng)ip 登陸阿里云
  5. cd 并回車進入用戶主頁
  6. cd .ssh 進入阿里云.ssh文件夾
  7. vim authorized_keys 將內(nèi)容復(fù)制到里面
  8. chmod 700 . #給當前目錄設(shè)置權(quán)限

3自動登陸阿里云腳本

  1. cmd中進入選中的文件夾(一般為易查找的)
  2. vim connect_aliyun.sh 創(chuàng)建一個腳本并編輯
  3. ssh root@公網(wǎng)ip 寫入要執(zhí)行的命令(登陸命令)
  4. chmod u+x connect_aliyun.sh 給腳本設(shè)置啟動權(quán)限
    登陸時直接進入這個文件夾并輸入該腳本就能自動登陸

4向服務(wù)器傳輸文件

  1. zip -r zhaopin.zip zhaopin 本地壓縮打包文件
  2. scp zhaopin.zip root@公網(wǎng)ip: /root/zzz/ (冒號后跟欲上傳的路徑) 遠程拷貝至服務(wù)器
  3. cd /root/zzz/ 進入傳輸?shù)奈募A
  4. unzip zhaopin.zip 服務(wù)器端解壓
  5. cd zhaopin/ 進入上傳后的解壓文件

5配置定時爬取

定時爬取全部在服務(wù)器端配置

  1. 進入/Users/hyf/work/bin/文件夾(cd /Usr/hyf/work/bin/)
  2. vim crawl_boss.sh 創(chuàng)建并編輯啟動腳本
  3. source ~/qianfeng/venv/bin/activate 在腳本中寫入啟動虛擬環(huán)境
  4. cd ~/qianfeng/10days/day10/zhaopin 在腳本中寫入啟動環(huán)境后進入項目文件
  5. scrapy crawl boss -o ressult.json 在腳本中寫入啟動文件
  6. 退出腳本編輯環(huán)境
  7. crontab -e 啟動定時裝置
    • */2 * * * /Users/hyf/work/bin/crawl_boss.sh > ~/zzz/logs.txt 設(shè)置每兩天定時調(diào)用啟動腳本并將結(jié)果重定向到txt文件蔑舞。

5.1crontab簡單介紹

crontab文件在etc目錄下, cd /etc/進入etc

  • /1,16 * * * /Users/hyf/work/bin/crawl_boss.sh > ~/zzz/logs.txt表示的意義:minute hour day month week command
    0 4 1 jan * /etc/init.d/nginx restart 表示一月一號的4點重啟nginx
    星號(
    ):代表所有可能的值拒担,例如day字段如果是星號,則表示在滿足其它字段的制約條件后每天都執(zhí)行該命令操作攻询。
    逗號(,):可以用逗號隔開的值指定一個列表范圍从撼,例如,“1,2,5,7,8,9”
    中杠(-):可以用整數(shù)之間的中杠表示一個整數(shù)范圍钧栖,例如“2-6”表示“2,3,4,5,6”
    正斜線(/):可以用正斜線指定時間的間隔頻率低零,例如“0-23/2”表示每兩小時執(zhí)行一次。同時正斜線可以和星號一起使用拯杠,例如*/10毁兆,如果用在minute字段,表示每十分鐘執(zhí)行一次阴挣。
    crontab介紹具體參考:https://blog.csdn.net/wd2011063437/article/details/78960668

tar czvf test.tar.gz test 壓縮成gz格式
tar xzvf test.tar.gz 解壓
ps aux | grep 8000 查看端口
netstat -lntp | grep 8000 查在某個端口是否跑了某個服務(wù)
mongdb端口27017

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末气堕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子畔咧,更是在濱河造成了極大的恐慌茎芭,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件誓沸,死亡現(xiàn)場離奇詭異梅桩,居然都是意外死亡,警方通過查閱死者的電腦和手機拜隧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門宿百,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趁仙,“玉大人,你說我怎么就攤上這事垦页∪阜眩” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵痊焊,是天一觀的道長盏袄。 經(jīng)常有香客問我,道長薄啥,這世上最難降的妖魔是什么辕羽? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮垄惧,結(jié)果婚禮上刁愿,老公的妹妹穿的比我還像新娘。我一直安慰自己到逊,他們只是感情好酌毡,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蕾管,像睡著了一般枷踏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掰曾,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天旭蠕,我揣著相機與錄音,去河邊找鬼旷坦。 笑死掏熬,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的秒梅。 我是一名探鬼主播旗芬,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼捆蜀!你這毒婦竟也來了疮丛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤辆它,失蹤者是張志新(化名)和其女友劉穎誊薄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锰茉,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡呢蔫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了飒筑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片片吊。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡绽昏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俏脊,到底是詐尸還是另有隱情全谤,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布联予,位于F島的核電站啼县,受9級特大地震影響材原,放射性物質(zhì)發(fā)生泄漏沸久。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一余蟹、第九天 我趴在偏房一處隱蔽的房頂上張望卷胯。 院中可真熱鬧,春花似錦威酒、人聲如沸窑睁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽担钮。三九已至,卻和暖如春尤仍,著一層夾襖步出監(jiān)牢的瞬間箫津,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工宰啦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留苏遥,地道東北人。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓赡模,卻偏偏與公主長得像田炭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子漓柑,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361