python数据分析开发中的常用整理
Pandas操作
python使用pandas读取csv import pandas as pd
#数据筛选
usetTable = pd.read_csv(filename,header = 0)
mask = True ^ userTable['ID'].isin(['',''])&.....
show = userTable[mask] #例子,包含6105的行
userTable[userTable['ID'].isin([''])]
userTable[userTable['ID'].isin([6105])] #统计某种数据出现的次数
result = userTable.group(['列名1','列名2']).size().result_index(name = 'count') #表连接(列名一致)
result = pd.merge(result1,result2,how = 'left', on=['列名1','列名2'])
#表连接(列名不一致)
result = pd.merge(result1,result2,how = 'left', left_on = '列名',right_on = '列名') #去除重复项
result = result1[~result1.duplicated(subset = ['列名1','列名2'], keep = 'last')] #对指定项进行累加,展示
result = result1.groupby([])['count'].sum().reset_index() #选取用户在不同地点的最大时间
result = result1.groupby([])['time'].max().reset_index() #返回特定值的行
table[tabel.flag == 1] #loc,iloc,ix
'''
loc通过标签索引读取行数据
iloc通过行号索引
ix结合两种
'''
#取某几列数据
iloc[:,[1,2]] #python中的三元表达式
h = "变量1" if a>b else "变量2"
table.groupby('b').['key'].apply(lambda i: i.iloc[1] if len(i)>2 else len(i))#此处的i应用于每一行或每一列,自动匹配 #按照年龄排序
students = [('joh','A',15),('jat','B',12),('dev','B',10)]#tuple
list1 = sorted(students,key = lambda student:students[2])#list
sorted(cmp,key,reverse)#reverse默认为False,升序。 #过滤,每一行返回的是最大值
index1 = result.groupby()[].transform(max)
index2 = ( index1 == result['count']) #取特定列
usetTable[['列名1','列名2']]
#删除特定列
userTable.drop('列名',axis =1)
axis = 0 表示沿着行标签方向执行方法
axis = 1 表示沿着列标签方向执行方法 #返回特定数据所在的行号
d = df[(df.Boolcol ==3 )& (df.attr == 32)].index.tolist() #查看某几列的值
df.head(n) #获取行号
raw = df.shape[0] #通过行号获取其他数据
df.ix[d]['数据'] #list转array
np.array([list]) #array存为csv
pd.DataFrame(data = array).to_csv('yy',mode = 'a',header=False) #获取某一列不重复的数据及个数
len(df['列名'].unique()) #python作图
#设置X轴
pd.set_index('列名') pd.plot.line() pd.random.randn(10,4) fig, axes = plt.subplots(2,1) pd.plot(kind ='bar', ax = axe[0])
#垂直柱状图
kind = 'bar'
#垂直密度图
kind = 'kde'
#水平柱状图
kind = 'barh'
#指定在某个子图上作图
ax = axe[0]
#生成堆积柱状图
stacked = True
#饼图
pd.plot.pie(subplots = True) pd.plot.scatter(x = '列名',y = '列名') #使用pd.Series把dataframe转成Series
pd.series(df['列名'].values,index = df['']) #返回列数
userTable.colums.size #将组内的列表合并,数据聚合
result = table.groupby(['id']).aggregate(lambda x: list(x)) #python去除字符串两端的符号
strip()去除首末
lstrip()去除左边
rstrip()去除右边 #把含有Nan的行删除
df.dropna() #删除列为空的行
table = pd.read_csv("", dtype = {'CUST_ID':str})
mask = table['CUST_ID'].isnull()
table = table[~mask] #取列名
DataFrame.colums.values.tolist() #转化为python可识别的数值
np.nan:nan
np.Inf:Inf #对分组后的数据采取不同的运算方式
data = df.groupby('A')
data.agg({'B':'mean', 'c':'sum'}) #按照A分组后,对多列采取相同的聚合方式
df.groupby('A').apply(np.mean) #将某列数据按数据值分成不同范围,进行分组运算
df = pd.DataFrame({'Age'}:np.random.randint(20,70,100),
'sex':np.random.choice(['male','female'],size=(10))) #生成时间格式
pd.dta_range('2018-6-20', periods =20, freq = '5min') #按照范围分组
age_groups = pd.cut(df['age'], bins = [19,40,65,np.inf])
result = df.groupby(age_groups).max() #生成交叉表
pd.crosstab(age_groups,df['sex']) #分组后,转为dict
A = dic(list(df.groupby('key')))
A['a'] temp = df.groupby('type')
for name,group in temp:
print(name)#str
print(group)#DataFrame fo x in temp:
print(x)#tuple agg使用:针对不同的列,应用不同的聚合函数
#按照A分组后,对另一列采取不同的聚合方式
df.groupby('A')['B'].agg({'mean':np.mean,'std':np.std}) #按照A分组后,对不同的列采取不同的处理方式
df.groupby('A').agg({'B':[np.mean,'sum'],'C':['count',np.std]}) #分组后,按照某几列排序
#按照时间排序
result.groupby(['a.id'],group_keys = False).apply(
lambda g: g.sort_value('b.time',ascending = True)) #按照指定列排序
DF.sort_values(by = '列名', ascending = True) #取某一列的值
tble['列名'].str[0:10]
#增加一列
table['new'] = talbe['列名'].str[0:10] #lambda函数
my_lambda = lambda arg: arg+1
result = my_lambda(123)
等价于
def func(arg):
return arg+1
result = func(123) #读取csv问价
pd.read_csv(error_bad_lines = False(跳过错误行),
quoting = CSV.QUOTE_NONE(指定字符使用时不收分隔符影响)) #pandas按照正则匹配
index = table['b.str'].str.contains(r'^\$.*')
result = table[index] #获取特定值所在的列
result[result['a.id' == 2018]]
result[result['a.time' >= '2018-04-01']]
#保留第一次出现的行
df.drop_duplicates(subset = ['',''],keep='first')
python数据分析开发中的常用整理的更多相关文章
- Windows开发中一些常用的辅助工具
经常有人问如何快速的定位和解决问题,很多时候答案就是借助工具, 记录个人Windows开发中个人常用的一些辅助工具. (1) Spy++ 相信windows开发中应该没人不知道这个工具, 我们常用 ...
- Python Web开发中的WSGI协议简介
在Python Web开发中,我们一般使用Flask.Django等web框架来开发应用程序,生产环境中将应用部署到Apache.Nginx等web服务器时,还需要uWSGI或者Gunicorn.一个 ...
- React在开发中的常用结构以及功能详解
一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...
- JS 开发中数组常用的方法
大家有没有想过,js数组为什么会有这么多的方法,没错,就是为了不同场景下处理数据的需要,就像设计模式一样,都是为了能更好的处理当前场景的需要. 首先怎么创建一个数组呢, // 两种方式 // 1,构造 ...
- 【Cocos2d-x游戏开发】细数Cocos2d-x开发中那些常用的C++11知识
自从Cocos2d-x3.0开始,Cocos2dx就正式的使用了C++11标准.C++11简洁方便的特性使程序的可拓展性和可维护性大大提高,也提高了代码的书写速度. 下面我们就来一起学习一下Cocos ...
- Python Django开发中XSS内容过滤问题的解决
from:http://stackoverflow.com/questions/699468/python-html-sanitizer-scrubber-filter 通过下面这个代码就可以把内容过 ...
- python数据分析笔记中panda(1)
1 例子1 from pandas import read_csv; df = read_csv('H://pythonCode//4.1//1.csv') df 截图 1.1 修改表的内容编码 df ...
- Python入门之Pycharm开发中最常用快捷键
要查阅Pycharm的快捷键,当然要看官方文档,https://www.jetbrains.com/help/pycharm/mastering-keyboard-shortcuts.html 编辑类 ...
- Python数据分析开发环境
准备工作 下载并安装最新版本的Anaconda 下载并安装最新版本的Visual Studio Code 编辑器 Tips: 可以选择自己喜欢并且熟悉的编辑器或IDE.如:VIM.Emacs.Note ...
随机推荐
- 部署 asp.net 网站到 Azure
部署asp.net网站到Azure 前言 前些天一直在写一个单页面web应用程序,终于完成了,于是考虑发布到云服务器.本人没有AWS账号,遂本打算使用谷歌云.参考文档后发现官方文档给出的方式为在vis ...
- docfx 简单使用方法、自动生成目录的工具
[摘要] 这是我编写的一个 Docfx 文档自动生成工具,只要写好 Markdown 文档,使用此工具可为目录.文件快速生成配置,然后直接使用 docfx 运行即可. https://github.c ...
- python3的hashlib库sha256、pbkdf2_hmac、blake2b基本用法
hashlib.sha256: import hashlib x = hashlib.sha256()x.update(b"asd")print("x_1 = " ...
- 修改源代码时不需要重启tomcat服务器
我们在写JSP + Servlet 的时修改了Java代码就要重新启动服务器.十分麻烦. 为了解决这个问题我们可以将服务器改成debug 模式.就是按调试状态这样修改Java代码就不用再重新启动服务器 ...
- Mysql Join-连接查询(上)
认识 多表连接查询,我感觉应该是关系型数据库最能体现其价值和灵活性的地方吧. 我觉得数据库的作用, 归纳起来无非就是存储和查询. 一言蔽之,数据库就是能灵活地存储和查询数据. 存储上, 也是以文件的方 ...
- 9.为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗?
作者:中华石杉 面试题 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗? 面试官心理分析 从这个问题开始就进行分布式系统环节了,现在出去面试分布式都成标配了,没有哪个公司不问问 ...
- 查看 JVM 默认参数
-XX:+PrintFlagsFinal 可以获取所有可设置参数及值 获取 JVM 默认 Xss 大小 java -XX:+PrintFlagsFinal -version | grep Thread ...
- JavaScript实现的图片循环播放
直接上干货 <html> <head> <title>Banner Cycler</title> <script> var banners ...
- Redis缓存实战教程
目录 Redis缓存 使用缓存Redis解决首页并发问题 1.缓存使用的简单设计 2.Redis的整合步骤 A 将Redis整合到项目中(Redis+Spring) B 设计一个数据存储策越 3.Re ...
- openstack连接报错net_mlx5: cannot load glue library: libibverbs.so.1
部署openstack controller节点,第二天登录主机提示错误信息 Connecting to 10.1.10.151:22...Connection established.To esca ...