Pandas 记录
过滤不为空的数据
df[df['PLANR']=='']
获取某列某行数据(某个单元格数据)
df['MNG02'][0]
根据判断条件筛选数据
df[df['DAT00'] < temp_time]
获取整列数据集合
tmp_df.get('DAT00').unique()
从原来的dataFrame中提取需要的列 组成新的dataFrame
dataFrame[['col1','col2','col3']]
dataFrame进行分组
dataFrame.groupby(['col1','col2','col3']).sum()
重置索引
df.reset_index()
创建新DataFrame
新建一个字典,key作为列名
data = {'Name': ['mark', 'jack', 'james', 'kobe', 'alias'], 'Age': [13, 13, 14, 15, 16],
'Sex': ['F', 'F', 'M', 'M', 'M'],
'Job': ['wait', 'eat', 'computor', 'drink', 'sleep']}
pd.DataFrame(data) df['columnName'] 类型Serials
df[['columnName']] 类型DataFrame
df.shape (行数,列数) 添加新列
1.df['columnName'] = value
2.df.insert(columnIndex, 'columnName', 'value') 设置索引
df.set_index('columnName') 根据索引获取需要的行数据(没有索引获取不到)
df.loc['indexName'] type:Serials
df.loc[['indexName1','indexName2','indexName3']] type:DataFrame 根据行数获取需要的行数据
df.iloc['rowNumber'] type:Serials
df.iloc[['rowNumber1','rowNumber2','rowNumber3']] type:DataFrame 获取指定的行数和列数
df.iloc[:3, :4] 选取前3行和前4列
df.iloc[:, [4,6]] 选取两列的所有的行
df.iloc[[100, 200], [7, 15]] 选取不连续的行和列
df.loc[:, ['columnName1', 'columnName2']] loc实现同上功能 获取df中指定的数据值
df.iloc['rowNumber','colNumber']
df.loc['indexName','columnName'] 根据列名从原始数据集中抽取需要的数据,结果集(行数不变,列数减少)
df[['columnName1','columnName2','columnName3']] 根据bool值进行数据提取,条件必须是bool类型数组,并且数组的大小与行数一致
df[[True,True,False]] :获取前2行
df[df['Age'] == 12] :获取Age为12的行数据
df[(df['Age'] == 12) & (df['Name'] = 'jack')] :根据多个条件获取数据,括号必须,因为&运算符高于逻辑运算符 根据指定列进行排序
df.sort_values('columnName', ascending=False) ascending=False 降序 默认升序 数据去重
df.drop_duplicates(subset='columnName') subset:指定根据某列中的数据去重,默认采用全部数据列
""" """
Serials操作
ss = df['columnName'] 获取df中某一列,返回Serials 获取第几个值
ss.iloc['int']
ss['int'] 获取多个值
ss.iloc[['int1','int2','int3']]
ss[['int1','int2','int3']] loc只接收行索引标签(没有索引获取不到数据)
ss.loc['indexName'] 修改列名
df.rename(columns={'oldColumnName':'newColumnName'})
df.columns = ['newColumnName1', 'newColumnName2', 'newColumnName3'] 分组、聚合的多种方式
df.groupby(['columnName1','columnName2','columnName3']).sum()
df.groupby(['columnName1','columnName2']).agg({'columnName3':['f1','f2'],'columnName4:[f3,f4]'}) :通过2个字段进行分组后,指定columnName3和columnName4进行2种不同聚合函数的计算
df.groupby(['columnName1'])['columnName2','columnName3'].agg(['f1','f2']) 通过一个字段进行分组,指定2个字段进行指定的聚合函数计算 unstack('indexNumber') 行转列 参数 索引的level 比如 第一列索引输入0,第二列索引输入1,若只有2个索引,输入了2,异常,必须是索引列
unstack('indexName') stack('indexNumber') 列转行
stack('indexName') 列转行 pandas合并
数据直接合并,没有任何删减
pd1.concat(pd2) 4. concat, join, 和merge的区别
concat :
Pandas函数
可以垂直和水平地连接两个或多个pandas对象(唯一一个可以垂直合并的函数,append内部采用的也是concat函数)
只用索引对齐
索引出现重复值时会报错
默认是外连接(也可以设为内连接)
join :
DataFrame方法
只能水平连接两个或多个pandas对象
对齐是靠被调用的DataFrame的列索引或行索引和另一个对象的行索引(不能
是列索引)
通过笛卡尔积处理重复的索引值
默认是左连接(也可以设为内连接、外连接和右连接)
merge :
DataFrame方法
只能水平连接两个DataFrame对象
对齐是靠被调用的DataFrame的列或行索引和另一个DataFrame的列或行索引
通过笛卡尔积处理重复的索引值
默认是内连接(也可以设为左连接、外连接、右连接) pandas从数据库获取数据后,会将数据加载到内存,,差不多1g内存100w行数据
pandas到处数据至csv、hdf5,100w行/200M ------------------------------------------------------------------------------------
vaex
vaex的hdf5坑:vaex只支持自身保持的hdf5格式,所以需要使用vaex的hdf5功能,步骤如下:
1.先利用pandas获取需要的dataFrame
2.使用v1=vaex.from_pandas(dataFrame) 将dataFrame转换成vaex支持的dataFrame
3.将获取的数据集导出成vaex本身支持的hdf5 v1.export_hdf5('store.h5')
以上步骤就已经有了vaex本身支持的hdf5文件了,可以大胆的使用vaex来进行快速的数据分析了
加载
df = vaex.open('store.h5') vaex的操作基本都是毫秒级
df的过滤操作
cl_order[(cl_order.ITEM == '1160XW717') & (cl_order.CLOSE_TIME < np.datetime64(datetime(2019,10,2))) & (cl_order.CLOSE_TIME>=np.datetime64(datetime(2019,10,1)))]
vaex如果数据量大,那么在进行groupby的时候,几乎就不会动了 datetime64[ns]转datetime 需要先转到datetime64[s] np.datetime64(x,'s').item().hour x为datetime64[ns]对象,item()后为datetime对象
Pandas 记录的更多相关文章
- pandas记录
pandas的map方法使用 import pandas as pd import numpy as np data = pd.DataFrame(np.random.randint(0, 10, ( ...
- Pandas dataframe 标记删除重复记录
Pandas提供了duplicated.Index.duplicated.drop_duplicates函数来标记及删除重复记录 duplicated函数用于标记Series中的值.DataFrame ...
- Pandas标记删除重复记录
Pandas提供了duplicated.Index.duplicated.drop_duplicates函数来标记及删除重复记录 duplicated函数用于标记Series中的值.DataFrame ...
- Python pandas 获取Excel重复记录
pip install pandas pip install xlrd 大量记录的时候,用EXCEL排序处理比较费劲,EXCEL程序动不动就无响应了,用pands完美解决. # We will use ...
- #2 numpy pandas初步学习记录
对numpy中的array进行了了解,array方法的取值arr_2d[0:2, 0:2] pandas 1,read_CSV方法 2,head方法 3,loc方法,取值前开后开, 4,replace ...
- Pandas 学习记录(一)
1.DataFrame 按照列和按照行进行索引数据 按照列索引 df[’column_name’] 按照行索引 df.loc[’row_key’] 或 df.iloc[index] 2.先行后列索引单 ...
- 数据清洗记录,pandas
pandas数据清洗:http://www.it165.net/pro/html/201405/14269.html data=pd.Series([1,2,3,4]) data.replace([1 ...
- pandas error记录随笔
1.sys:1: DtypeWarning: Columns (0,1) have mixed types. Specify dtype option on import or 解决办法:PANDAS ...
- pandas删除满足特定列信息的行记录
#!/usr/bin/python import pandas as pd df = pd.read_excel('c:\data\zichan.xlsx') df_sn = pd.read_exce ...
随机推荐
- js json -> <-object
1.利用原生JSON对象,将对象转为字符串 var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.date ...
- StreamPipes
MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was desi ...
- php自带的密码哈希
常用的MD5.SHA1.SHA256哈希算法,是面向快速.高效进行哈希处理而设计的.随着技术进步和计算机硬件的提升,如今强大的计算机很容易破解这种算法.也就是说,不要用MD5.SHA1.SHA256这 ...
- 零Web知识个性化Blog
需要使用到的工具 Chrome Pycharm 自定主题的CSS 申请博客的Js权限 设置博客选项 打开Chrome修改查看CSS样式,Windows(F12),MacOS(Command+Optio ...
- 接口出现无法执行curl 开启cgi
问题描述: 路由能正常访问,但认证失败, 由于请求需要执行,curl -X GET "http://api.jr.com/v1/salary/list" -H "acce ...
- 1.什么是springboot
什么是spring? Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson . Spring是为了解决企业级应用开发的复杂性而创建的,简化开发. ...
- 2019牛客多校第四场J free 最短路
free 题意 给出一个带权联通无向图,你需要从s走到t,你可以选择k条变让他们的权值为0问从s到t的最小权值是多少? 分析 思考一下,如果不带k条白嫖这个条件,那么这就是一个简单的dji就搞定了,我 ...
- How To Use These LED Garden Lights
Are you considering the lighting options for the outdoor garden? Depending on how you use it, LED ga ...
- 使用VS2015调试Qt5.9.5源码
调试的前提 1.Qt5.9.5源码. 2.Qt5.9.5对应VS2015版本的pdb文件. 前提1在安装Qt时勾选源代码选项即可,这样安装后的Qt目录会多出一个“Src”的目录,里面就是Qt的源码. ...
- c#常用控件及简写
c#常用控件及简写