day78-数据分析之pandas及部分linux操作

1pandas库操作

1.1索引对象

Index对象是不可变的,因此用户不能对其进行修改(只能对全体index进行整体修改,而不能对某个进行修改);不可变可以使Index对象在多个数据结构之间安全共享。

index[1] = ‘d’  # TypeError

pandas对象的一个重要方法是reindex,其作用是创建一个新对象,它的数据符合新的索引。

obj.reindex(['a', 'b', 'c', 'd', 'e'])# 将按排序输出数据

时间序列这样的有序数据,重新索引时可能需要做一些插值处理。method选项即可达到此目的,例如,使用ffill可以实现前向值填充

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可以修改(⾏)索引和列。只传递一个序列时,会重新索引结果的⾏;列可以⽤columns关键字重新索引。

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切片运算不同,其末端是包含的;用数值切片则是包含的

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

⽤一个值或序列对DataFrame进⾏索引其实就是获取一个或多个列;

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

1.4⽤loc和iloc进⾏选取

使⽤轴标签(loc)或整数索引(iloc),从DataFrame选择⾏和列的⼦集

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

1.5算术运算和数据对⻬

两个series或者dataframe可以进行加操作
对于DataFrame,对⻬操作会同时发⽣在⾏和列上;
如果DataFrame对象相加,没有共⽤的列或⾏标签,结果都会是空;
当一个对象中某个轴标签在另一个对象中找不到时填充一个特殊值(⽐如0);
相加时,没有重叠的位置就会产⽣NA值

df1.add(df2, fill_value=0) # 有就加,没有这列则为0加对应的值

DataFrame和Series之间的运算

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

如果某个索引值在DataFrame的列或Series的索引中找不到,则参与运算的两个对象就会被重新索引以形成并集

1.6函数应⽤和映射

传递axis=‘columns’到apply,这个函数会在每⾏执⾏

np.abs(frame) #求绝对值
f = lambda x: x.max() - x.min()
frame.apply(f) # 每列的最大值与最小值之差
frame.apply(f, axis='columns') # 对每列执行

得到frame中各个浮点值的格式化字符串,使⽤applymap即可;Series有一个⽤于应⽤元素级函数的map⽅法

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

1.7排序

要对⾏或列索引进⾏排序(按字典顺序),可使⽤sort_index⽅法,它将返回一个已排序的新对象;DataFrame,可以根据任意一个轴上的索引进⾏排序
升序排序

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

降序排序
按值对Series进⾏排序,可使⽤其sort_values⽅法;排序时,任何缺失值默认都会被放到Series的末尾

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

排序一个DataFrame时,根据一个或多个列中的值进⾏排序。将一个或多个列的名字传递给 sort_values的by选项即可

frame.sort_values(by='b') 

1.8排名

rank为各组分配一个平均排名;对数据从小到大排序;并列就取不并列时的中间值;原顺序不变(第二列显示排名的序号)
rank(method='first') 根据值在原数据中出现的顺序给出排名

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

也可以按降序进⾏排名

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

DataFrame可以在⾏或列上计算排名

frame.rank(axis='columns') 

如果某个索引对应多个值,则返回一个Series;⽽对应单个值的,则返回一个标量值
pandas对象拥有一组常⽤的数学和统计⽅法。它们⼤部分都属于约简和汇总统计,⽤于从 Series中提取单个值(如sum或mean)或从DataFrame的⾏或列中提取一个Series。
调⽤DataFrame的sum⽅法将会返回一个含有列的和的Series
传⼊入axis=‘columns’或axis=1将会按进⾏和运算

df.sum(axis=1) 

NA值会⾃动被排除,除⾮整个切⽚(这⾥指的是⾏或列)都是NA。通过skipna选项可以禁⽤ 该功能:

1.9计数及唯一性

unique,它可以得到Series中的唯一值数组
value_counts⽤于计算一个Series中各值出现的频率
isin⽤于判断⽮量化集合的成员资格(判断a中的每个数据是否在b中有出现)

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

结果中的⾏标签是所有列的唯一值。后⾯的频率值是每个列中这些值的相应计数

result = data.apply(pd.value_counts).fillna(0)#统计data中每列各数字出现的次数,没有出现的填充为0

2linux中公钥密钥配置

  1. cmd中进入usr/hyf/.ssh/文件夹
  2. ssh-keygen -生成密钥和公钥
  3. cat id_rsa.pub 查看公钥并复制内容
  4. ssh root@公网ip 登陆阿里云
  5. cd 并回车进入用户主页
  6. cd .ssh 进入阿里云.ssh文件夹
  7. vim authorized_keys 将内容复制到里面
  8. chmod 700 . #给当前目录设置权限

3自动登陆阿里云脚本

  1. cmd中进入选中的文件夹(一般为易查找的)
  2. vim connect_aliyun.sh 创建一个脚本并编辑
  3. ssh root@公网ip 写入要执行的命令(登陆命令)
  4. chmod u+x connect_aliyun.sh 给脚本设置启动权限
    登陆时直接进入这个文件夹并输入该脚本就能自动登陆

4向服务器传输文件

  1. zip -r zhaopin.zip zhaopin 本地压缩打包文件
  2. scp zhaopin.zip root@公网ip: /root/zzz/ (冒号后跟欲上传的路径) 远程拷贝至服务器
  3. cd /root/zzz/ 进入传输的文件夹
  4. unzip zhaopin.zip 服务器端解压
  5. cd zhaopin/ 进入上传后的解压文件

5配置定时爬取

定时爬取全部在服务器端配置

  1. 进入/Users/hyf/work/bin/文件夹(cd /Usr/hyf/work/bin/)
  2. vim crawl_boss.sh 创建并编辑启动脚本
  3. source ~/qianfeng/venv/bin/activate 在脚本中写入启动虚拟环境
  4. cd ~/qianfeng/10days/day10/zhaopin 在脚本中写入启动环境后进入项目文件
  5. scrapy crawl boss -o ressult.json 在脚本中写入启动文件
  6. 退出脚本编辑环境
  7. crontab -e 启动定时装置
    • */2 * * * /Users/hyf/work/bin/crawl_boss.sh > ~/zzz/logs.txt 设置每两天定时调用启动脚本并将结果重定向到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字段如果是星号,则表示在满足其它字段的制约条件后每天都执行该命令操作。
    逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
    中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
    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 查在某个端口是否跑了某个服务
mongdb端口27017

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,820评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,648评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,324评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,714评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,724评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,328评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,897评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,804评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,345评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,431评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,561评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,238评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,928评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,417评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,528评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,983评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,573评论 2 359