文章目录
申明
- 文章内容最近几篇可能比较简单,但是工作了以后会逐渐发现由于这些基本功不扎实,会浪费很多时间在这些一下没法记住但是又很琐碎的基本技能上,因为这些技能其实要做到信手拈来,但是反而很多时候达不到。现在随着工作的进行用到的基础技能方法总结到优快云上,以便自己日后查阅,也方便广大朋友学习交流。
python中pandas将dataframe表保存到本地to_csv操作
- 直接:data.to_csv("./data_test.csv")是不行的,再次读进来就会发现dataframe默认多加了一列Unnamed:0,导致后续的处理很麻烦
所以正确的做法:to_csv()时候,设置index=False。或者加上index=True, index_label="id"
csv文件和tsv文件相互转化
- 有时候我们拿到的文件是csv或者是tsv文件,但是公司或者其他小伙伴用的正好不是我们这个数据样式,一招解决:
- 要知道csv:逗号分隔符文件_",";tsv:制表分隔符文件_"/t";用replace方法将‘,’替换成‘\t’,然后文件后缀改为tsv即可,这样的方式速度非常快
with open('mydata.csv') as f:
data = f.read().replace(',', '\t')
with open('mydata.tsv', 'w') as f:
f.write(data)
#若已经读入dateframe,直接to_csv即可
my_dataframe.to_csv("./data.tsv", sep = '\t', index = Fasle)
在Linux服务器下绘图
- 大多数情况下在业务场景中是不需要绘图的,但是在朋友之间分享,汇报的时候还是有图会更加直观,同时在linux环境中,没有可视化界面直接进行绘图
- 此时需要保存图片到指定目录(或者当前目录)
import matplotlib as mpl
import matplotlib.pyplot as plt
plt.plot([1,2.33],[4,6,9])
plt.savefig('./mypicture.jpg')#可以自定义文件目录
Linux下文件的操作
- 文件的复制
命令的格式:cp [选项] 目录下源文件 目录下目标文件
example:
cp ./test.py /data1
cp test.py ./test_copy.py
同一文件复制到同一目录下需要改动名字避免重名
- 文件移动
命令格式:mv [选项] 目录下源文件 目录下目标文件
选项一般还不经常用,用到再补充
example:
mv /test1/file1 /test3/fele2
- 文件删除
命令格式:rm [选项] 文件及目录
选项参数会包括
-f 强制删除 -i 交互删除 -r递归删除
example:
rm ./test.py
excel中单元格内换行
- 在小批量数据分析,或者总结中是会用到excel的,方便快捷
手动换行:将光标移动到要换行的位置,按【ALT+ENTER】键,即可将选中的单元格文本按照用户的要求进行任意换行
自动换行:选中单元格,直接单击菜单栏的自动换行
jupyter notebook中添加代码行数
- Jupyter Notebook 默认状态下不会在代码左端显示行号,这就导致我们遇到报错时,无法正常调试
- 打开一个文档在最上面菜单栏:点击View–>点击Toggle Line Numbers
dataframe提取列或者提取行
- 注意要达到拿到一个dataframe表,能够达到随心所欲的操作这个表的程度,包括分析数据分布情况,统计,查看列或者行的操作[此段的操作以及命令会不定期进行更新]
import pandas as pd
data = pd.read_csv("./data.csv", low_memory = False, encoding = 'utf-8')
#查看第一列和第一行(索引和列名)
data.columns(省略查看)
data.index
data.columns.values#查看全部的列名字
#查看某一列的值
data.feature1
data['feature1']#返回的是serise
data[['feature1','feature2']]#返回的是dateframe
linux环境下改变python的运行路径
- linux下python代码只在文件目录下才能调用,在其他路径输入绝对路径不能执行,所以用到os模块来进行运行路径的变换
import os
os.chdir("/data1/data24")
#这样把当前路径切换到文件所在的路径
Pandas对DataFrame单列/多列进行批量运算操作
- 单列操作:DataFrame的一列就是一个Series, 可以通过map来对一列进行操作
def map_test(x):
if x == 2:
return 1
else:
return 0
data['feature1'] = data['feature2'].map(map_test)
#或者简单的逻辑比较直接应用lambda函数:
data['feature1'] = data['feature2'].map(lambda x: x * x)
- 多行操作(跨行操作)[之后补充]
- 分组操作
- 聚合操作