Python基于pandas的数据处理(一)
import pandas as pd, numpy as np
dates = pd.date_range('', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
1 mutate + ifelse
df['E'] = np.where(df['D'] >= 0, '>=0', '<0')
df['F'] = np.random.randint(0, 2, 6)
df.assign(G = df.A * df.D) # 或者
df['F'] = df['F'].apply(str) #针对单列的
df.applymap(str) #这个相当于是mutate_each
2 table
pd.value_counts(df["E"])
pd.pivot_table(df,index=['E','F'])
3 index 也就是取df的rownames,但与R不一样的在于,df可能有多维rownames
df.index
df.set_index(['A'], drop = 0, append = 1) # 把已有的列设置为index,可保留之前的index,也可以把新的index在原数据中删除
df['dates'] = df.index # 新生成一列dates
df.reset_index(level=0, inplace=True) # 同上
df.reset_index(level=['index']) # 同上
4 删除列和行
df = df.drop('index', axis = 1) # 可以删除多列
df.drop(df.index[[1,3]])
5 column names
df.columns
df.columns = ['a', 'b', 'c', 'e', 'd', 'f'] # 重命名
df.rename(columns = {'A':'aa','B':'bb', 'C':'cc', 'D':'dd', 'E':'ee', 'F':'ff'}, inplace=True)
df.rename(columns=lambda x: x[1:].upper(), inplace=True) # 也可以用函数 inplace参数的意思就是代替原来的变量,深拷贝
6 哑变量 dummy variables
pd.Series(['a|b', np.nan, 'a|c']).str.get_dummies()
7 纯粹的df的矩阵,即不包含column和index
df.values
df.get_values()
8 summary
df.describe() # 只会针对数值型变量做计算
9 rbind
df2=pd.DataFrame([[5,6],[7,8]],columns=list('AB'))
df.append(df2, ignore_index=True)
10 group by 分组汇总计算,和pivot_table类似
df.groupby(['E','F']).mean()
df.groupby(['E','F']).agg(['sum', 'mean'])
pd.pivot_table(df,index=['E','F'], aggfunc=[np.sum, np.mean])
df.pivot_table(index=['E','F'], aggfunc=[np.sum, np.mean]) # 同上
df.groupby(['E','F']).agg({'A':['mean','sum'], 'B':'min'}) # groupby 也可以这样写
11 排序
df.sort(['A','B'],ascending=[1,0]) # 按列排序,na_position控制NAN的位置
df.sort_index(ascending=0) # 按index排序
12 筛选
df[(df.A >= -1) & (df.B <= 0)] # 值筛选
df[df.E.str.contains(">")] # 包含某个字符,contains筛选的其实是正则表达式
df[df.F.isin([''])] # 在列表内
13 变量选择
df['A'] # 单个的列
df[0:3] # 行
df['':''] # 按index筛选
df.loc[:,] # 类似于R里面的dataframe选行和列的方法
df.iloc[:,] # iloc只能用数字了
Python基于pandas的数据处理(一)的更多相关文章
- Python基于pandas的数据处理(二)
14 抽样 df.sample(10, replace = True) df.sample(3) df.sample(frac = 0.5) # 按比例抽样 df.sample(frac = 10, ...
- python – 基于pandas中的列中的值从DataFrame中选择行
如何从基于pandas中某些列的值的DataFrame中选择行?在SQL中我将使用: select * from table where colume_name = some_value. 我试图看看 ...
- 【python】pandas & matplotlib 数据处理 绘制曲面图
Python matplotlib模块,是扩展的MATLAB的一个绘图工具库,它可以绘制各种图形 建议安装 Anaconda后使用 ,集成了很多第三库,基本满足大家的需求,下载地址,对应选择pytho ...
- python使用pandas进行数据处理
pandas数据处理 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网址http://loc ...
- 基于 Python 和 Pandas 的数据分析(1)
基于 Python 和 Pandas 的数据分析(1) Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性 ...
- 基于pandas python的美团某商家的评论销售数据分析(可视化)
基于pandas python的美团某商家的评论销售数据分析 第一篇 数据初步的统计 本文是该可视化系列的第二篇 第三篇 数据中的评论数据用于自然语言处理 导入相关库 from pyecharts i ...
- 基于 Python 和 Pandas 的数据分析(4) --- 建立数据集
这一节我想对使用 Python 和 Pandas 的数据分析做一些扩展. 假设我们是亿万富翁, 我们会想要多元化地进行投资, 比如股票, 分红, 金融市场等, 那么现在我们要聚焦房地产市场, 做一些这 ...
- 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础
在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...
- python之pandas简单介绍及使用(一)
python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...
随机推荐
- centos7 安装jdk7
源码包准备: 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.htm ...
- ubuntu apt 安装
1. ./autogen.sh: libtoolize: not found sudo apt-get install aptitude sudo aptitude install libtool 2 ...
- Spring+quartz 实现定时任务job集群配置
为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...
- 关于16年2月14日以后上传AppStore出现:Missing iOS Distribution signing identity for...的问题
2016年2月14日以后打包上传AppStore会发现出现如下的问题: 导致问题的原因是:下边这个证书过期了 以下是苹果官方给出的回应: Thanks for bringing this to the ...
- Git常用命令整理
.初始化一个Git仓库:git init 2.添加文件到Git仓库: git add <file> 添加文件到暂存区 git commit 把文件提交到版本仓库 3.查看工作区状态:git ...
- 关于BaseExpandableListAdapter
首先要明确,可折叠列表在每个项是包含子项的,那么肯定会用到集合嵌套!下面是封装的两个实体类: package com.yx.pojo;public class Chid { privat ...
- POJ3020 匹配
题目大意:给定一地图,*可以和相邻的*匹配成一对儿,问最少需要对儿匹配才能使所有*都被匹配到. 很直白的最小点覆盖,即ans = 点集数-最大匹配数. 不过一开始要对图进行遍历得到点集,找到一个*就把 ...
- C# Winform学习---MDI窗体的设计,PictureBox控件(图片上一页下一页),Timer控件,MenuStrip控件
一.MDI窗体的设计 1.MDI简介 MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下 ...
- ArcEngine:The XY domain on the spatial reference is not set or invalid错误
在创建数据集的时候,提示The XY domain on the spatial reference is not set or invalid错误. 原因:未设置空间参考(ISpatialRefer ...
- js+cookie 购物车
$(function () { //var ctx = new Ch(); //ctx.Clear(); //$.cookie(ctx.cookieName, ""); //ale ...