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 的一种工具,该工具是为了解决数据 ...
随机推荐
- iTerm2 cheatsheet (from github)
https://gist.github.com/helger/3070258 Tabs and Windows Function Shortcut Previous Tab ⌘+ Left Arrow ...
- js算出生日是当年第多少天
var year, month, day, monthSum = 0; var arr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, ...
- linux用户管理
管理用户的文件 添加用户组 添加用户 修改权限
- linux 如何显示一个文件的某几行(中间几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- C# Winform学习--- 实现石头剪刀布的游戏
本文使用winform实现简单的石头剪刀布的游戏,主要实现,电脑随机出拳,玩家手动点击出拳:实现简易背景图片3秒切换:简易统计信息. 1.效果图 2.实现代码 新建一个windows窗体程序,用数字1 ...
- instruments usage error specified target process is invalid
遇到这个问题的很多,但都没说具体的解决办法. 如果你的包名 路径之类的都正确,还是报这个错误的话,请重启手机.
- Visual Studio 2015 下 编译 libpng
libpng https://github.com/glennrp/libpng zlib https://github.com/madler/zlib/releases https://github ...
- linux下查看cpu物理个数、核数、逻辑cpu数
一.首先要明确物理cpu个数.核数.逻辑cpu数的概念 1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id) 2.cpu核数:单块CP ...
- Excel列名 字母和数字的转换
Excel的列名是由于字母组成的. A-Z 分别代表1-26 AA 是27 AB是28 以此类推. 以下是这种编码的转换方法,如果遇到需要用纯字母编号来表示数字的时候可以用到. /** * 类似EX ...
- JavaScript语法结构
一:字符集 1.区分大小写 JavaScript是区分大小写的语言 所有的标识符(identifier)都必须采取一致的大小写形式 但是Html并不区分大小写(尽管Xhtml区分) 2.空格.换行符和 ...