from pandas import DataFrame
import numpy as np
import pandas as pd t={
"age": [, , np.nan, , np.nan, ],
"city": ["BeiJing", "ShangHai", "GuangZhou", "ShenZhen", 'BeiJing', "ShangHai"],
"sex": [None, "male", "female", "male", np.nan, "unknown"],
"birth": ["2000-02-10", "1988-10-17", None, "1978-08-08", np.nan, "1988-10-17"],
"score":[,,,,,],
"naem":['sdf','aa','bb','tt','ere','tt'],
"name":['sdf 11','aa 22','bb 33','tt 44','ere 55','tt 66']
} df =DataFrame(t)
cc=df.isnull().sum() #每列none的个数,不是count(),count()求出来的值不对呦
print(df[df.age.notnull()]) # isnull()
df.dropna() #删除none所在行
df1=df['score']
df1.index=['a','b','c','d','e','f'] # 为series定义新的索引
df1.name='aiyou'
print(df1[df1<]) # 对 series 进行过滤
print(df1[['a','c']]) # 获取两个元素
print((df1[:])) # 对series切片
print((df1+)) # series 给每个元素加2
print(df1.to_frame()) #series 变成 dataframe
print(df1['a']) # 可以将series当做dict使用,series的index就是dict的key
print(df.loc[[,],['age']]) # 查询指定的行和列
# 访问行用loc 或 iloc
print(df[(df.age>)&(df.age<)])
print(df[(df.age>)&(df.age<)][['age']])# 查询特定的行和列
print(df.count()) # 非空的个数
print(df.sum()) # 非空的个数
del df['naem'] #删除一列
print(df.pop('naem')) # 删除一列,返回值是删除的这列,原来的df发生了变化
print(df.drop('age',axis=))# 删除一列,返回值是后的结果,原来的df没发生变化
print(df[['age','score']])
# print(s6+s7) s6和s7是两个series,s6中不存在g索引,s7中不存在e索引,所以数据运算会产生两个缺失值NaN
clonedf=df.assign(age_add_one = df["age"] + ) #在克隆df的同时再加上一列 如果想要保证原有的 DataFrame 不改变的话,我们可以通过 assign 方法来创建新的一列
print(clonedf) df['age_code']= np.where(df["age"] >, , ) # 根据某列的值,产生新的一列
df['age']=np.where(df['age']<df['score'],df['score'],df['age'])
print(type(df[['age']])) # DataFram
print(type(df['age'])) # Series
print(df.shape)
print(df.head()) # 查看前两行数据
print(df.tail())
print(df['age'].value_counts()) # 获取某列中每个值出现的次数
print(df.sort_index(ascending=False)) # 按索引排序
print(df.sort_values(by=['age','age_code'])) #按值排序
print(df['age'].idxmax()) #获取最大值的索引
print(df['age'].idxmin()) # 获取最小值的索引
'''
map 是 Series 中特有的方法,通过它可以对 Series 中的每个元素实现转换
apply 方法既支持 Series,也支持 DataFrame,在对 Series 操作时会作用到每个值上,在对 DataFrame 操作时会作用到整行或整列(通过 axis 参数控制)。
applymap 方法针对于 DataFrame,它作用于 DataFrame 中的每个元素,它对 DataFrame 的效果类似于 apply 对 Series 的效果
'''
df['age'] = df['age'].combine_first(df['score']) # 利用另一列的值填补此列的None
print(df.rename(index={: "tom", : "bob"})) #修改索引
print(df.rename(columns={"age": "Age", "city": "City", "sex": "Sex"})) #修改列名
print(df["age"].astype(float)) # 转换数据类型
print(pd.to_numeric(df.age, errors="ignore")) # errors='raise',这意味着强转失败后直接抛出异常,设置 errors='coerce' 可以在强转失败时将有问题的元素赋值为 pd.NaT(对于datetime和timedelta)或 np.nan(数字)。设置 errors='ignore' 可以在强转失败时返回原有的数据
print(df.age.nlargest()) # 获取最大的n个值或最小值的n个值,我们可以使用 nlargest 和 nsmallest 方法来完成,这比先进行排序,再使用 head(n) 方法快得多
df["birth"] = pd.to_datetime(df.birth) # 把数据类型转成时间
print(df.city.str.upper()) # print(df.city.str.len()) user_info.city.str.replace(" ", "_") str 方法的使用
print(df.name.str.split(' ').str.get()) # 对字段进行分割
df[['name1','name2']]=df.name.str.split(' ', expand=True) # 根据一列生成两列
print(df[df.city.str.contains("Zh")]) # 是否包含某个关键字
print(df.dropna(axis=, how="any", subset=["city", "sex"])) # thresh=,会在一行/列中至少有 个非空值时将其保留。
df.age.fillna()
print(df.replace({"age": , "birth": pd.Timestamp("1978-08-08")}, np.nan)) # 将age列为40的替换成nan,将birth列为1978--08的替换成nan
print(df.city.replace(r'\s+', np.nan, regex=True))

窗口函数:
df2.rolling(window=2, on="date", min_periods=1).sum() #计算每两条记录的和
df2.expanding(min_periods=1)["turnover"].sum() #累加和的计算,turnover为列名
df2.rolling(window=2, min_periods=1)["turnover"].agg([np.sum, np.mean]) #同时计算出多个统计值用agg

转换时区:

ts=pd.date_range("2018-6-26 07:00:00", periods=8)
print(ts)
ts_utc = ts.tz_localize('UTC')
print(ts_utc)
ts_ea=ts_utc.tz_convert('US/Eastern')
print(ts_ea)
 

pandas 常用方法使用示例的更多相关文章

  1. C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式

    C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...

  2. Spring JDBC常用方法详细示例

    Spring JDBC使用简单,代码简洁明了,非常适合快速开发的小型项目.下面对开发中常用的增删改查等方法逐一示例说明使用方法 1 环境准备 启动MySQL, 创建一个名为test的数据库 创建Mav ...

  3. numpy&pandas补充常用示例

    Numpy [数组切片] In [115]: a = np.arange(12).reshape((3,4)) In [116]: a Out[116]: array([[ 0, 1, 2, 3], ...

  4. Pandas常用方法

    数据处理很多需要用到pandas,有两个基本类型:Series表示一维数据,DataFrame表示多维.以下是一些常用方法的整理: pandas.Series 创建 Series pandas.Ser ...

  5. Date和Calendar时间操作常用方法及示例

    package test; import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; /** ...

  6. Mockito常用方法及示例

    Mockit是一个开源mock框架,官网:http://mockito.org/,源码:https://github.com/mockito/mockito 要使用Mockit,首先需要在我们工程中引 ...

  7. python大数据初探--pandas,numpy代码示例

    import pandas as pd import numpy as np dates = pd.date_range(',periods=6) dates import pandas as pd ...

  8. Pandas常用方法手册

    关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 同时我们需要做如下的引入: import pandas as pd 导入数据 pd.read_ ...

  9. pandas常用方法总结

    In [49]: frame2 Out[49]: year state pop debt one 2000 Ohio 1.5 NaN two 2001 Ohio 1.7 NaN three 2002 ...

随机推荐

  1. thinkphp3.2.2公用函数

    thinkphp3.2.2公用函数函数调用默认路径 home/Common/function.php

  2. Nginx静态服务配置---详解root和alias指令

    Nginx静态服务配置---详解root和alias指令 静态文件 Nginx以其高性能著称,常用与做前端反向代理服务器.同时nginx也是一个高性能的静态文件服务器.通常都会把应用的静态文件使用ng ...

  3. C语言合并果子-贪心算法

    /*有几堆水果.每次你把两堆东西移到一起,形成更大的一堆.每个动作消耗的能量是两堆水果的总重量.如何把所有的水果堆在一起,消耗最少的能量?*/ 以上是题目,该题首先要读懂题目,每次移到一起以后都要将数 ...

  4. 74HC573锁存器应用(附英文手册)

    锁存器(LATCH)概念 锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态. 锁存,就是把信号暂存以维持某种电平状态. 锁存器作用: 缓存 完成高速的控 ...

  5. 【LEETCODE】70、字符匹配1023 Camelcase Matching

    最近做leetcode总感觉自己是个智障,基本很少有题能自己独立做出来,都是百度... 不过终于还是做出了一题...而且速度效率还可以 哎,加油吧,尽量锤炼自己 package y2019.Algor ...

  6. linux查看当前路径命令 pwd

    pwd命令能够显示当前所处的路径. 这个命令比较简单,如果有时在操作过程中忘记了当前的路径,则可以通过此命令来查看路径,其执行方式为: # pwd /home/your_username 第一行为运行 ...

  7. mysql远程连接速度很慢

    远程服务器的mysql数据库在服务器上自己连接速度很快,但是在我本地连接确实出奇的慢,进入数据库慢,打开数据表慢,什么都慢.想到之前有看到过应该是远程链接解析的问题,在查询MySQL相关文档和网络搜索 ...

  8. powerful number求积性函数前缀和

    算法原理 本文参考了 zzq's blog . \(\text{powerful number}\) 的定义是每个质因子次数都 \(\ge 2\) 的数,有个结论是 \(\ge n\) 的 \(\te ...

  9. 华为云&#183;寻找黑马程序员#【代码重构之路】如何“消除”if/else【华为云技术分享】

    1. 背景 if/else是高级编程语言中最基础的功能,虽然 if/else 是必须的,但滥用 if/else,特别是各种大量的if/else嵌套,会对代码的可读性.可维护性造成很大伤害,对于阅读代码 ...

  10. Java File类 mkdir 不能创建多层目录

    File f = new File("/home/jp/Upload"); if ((!f.exists()) || (!f.isDirectory())) {boolean re ...