过滤不为空的数据

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 记录的更多相关文章

  1. pandas记录

    pandas的map方法使用 import pandas as pd import numpy as np data = pd.DataFrame(np.random.randint(0, 10, ( ...

  2. Pandas dataframe 标记删除重复记录

    Pandas提供了duplicated.Index.duplicated.drop_duplicates函数来标记及删除重复记录 duplicated函数用于标记Series中的值.DataFrame ...

  3. Pandas标记删除重复记录

    Pandas提供了duplicated.Index.duplicated.drop_duplicates函数来标记及删除重复记录 duplicated函数用于标记Series中的值.DataFrame ...

  4. Python pandas 获取Excel重复记录

    pip install pandas pip install xlrd 大量记录的时候,用EXCEL排序处理比较费劲,EXCEL程序动不动就无响应了,用pands完美解决. # We will use ...

  5. #2 numpy pandas初步学习记录

    对numpy中的array进行了了解,array方法的取值arr_2d[0:2, 0:2] pandas 1,read_CSV方法 2,head方法 3,loc方法,取值前开后开, 4,replace ...

  6. Pandas 学习记录(一)

    1.DataFrame 按照列和按照行进行索引数据 按照列索引 df[’column_name’] 按照行索引 df.loc[’row_key’] 或 df.iloc[index] 2.先行后列索引单 ...

  7. 数据清洗记录,pandas

    pandas数据清洗:http://www.it165.net/pro/html/201405/14269.html data=pd.Series([1,2,3,4]) data.replace([1 ...

  8. pandas error记录随笔

    1.sys:1: DtypeWarning: Columns (0,1) have mixed types. Specify dtype option on import or 解决办法:PANDAS ...

  9. pandas删除满足特定列信息的行记录

    #!/usr/bin/python import pandas as pd df = pd.read_excel('c:\data\zichan.xlsx') df_sn = pd.read_exce ...

随机推荐

  1. js json -> <-object

    1.利用原生JSON对象,将对象转为字符串 var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.date ...

  2. StreamPipes

    MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was desi ...

  3. php自带的密码哈希

    常用的MD5.SHA1.SHA256哈希算法,是面向快速.高效进行哈希处理而设计的.随着技术进步和计算机硬件的提升,如今强大的计算机很容易破解这种算法.也就是说,不要用MD5.SHA1.SHA256这 ...

  4. 零Web知识个性化Blog

    需要使用到的工具 Chrome Pycharm 自定主题的CSS 申请博客的Js权限 设置博客选项 打开Chrome修改查看CSS样式,Windows(F12),MacOS(Command+Optio ...

  5. 接口出现无法执行curl 开启cgi

    问题描述: 路由能正常访问,但认证失败, 由于请求需要执行,curl -X GET "http://api.jr.com/v1/salary/list" -H "acce ...

  6. 1.什么是springboot

    什么是spring? Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson . Spring是为了解决企业级应用开发的复杂性而创建的,简化开发. ...

  7. 2019牛客多校第四场J free 最短路

    free 题意 给出一个带权联通无向图,你需要从s走到t,你可以选择k条变让他们的权值为0问从s到t的最小权值是多少? 分析 思考一下,如果不带k条白嫖这个条件,那么这就是一个简单的dji就搞定了,我 ...

  8. 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 ...

  9. 使用VS2015调试Qt5.9.5源码

    调试的前提 1.Qt5.9.5源码. 2.Qt5.9.5对应VS2015版本的pdb文件. 前提1在安装Qt时勾选源代码选项即可,这样安装后的Qt目录会多出一个“Src”的目录,里面就是Qt的源码. ...

  10. c#常用控件及简写

    c#常用控件及简写