Python:Pandas学习
import pandas as pd
import numpy as np
s = pd.Series([1, 3, 6, np.nan, 44, 1]) df= pd.DataFrame(np.random.random((4,5))) # data frame 常用属性
df.dtypes
df.index
df.columns
df.values # data frame 常用方法
df.describe()
df.T
df.sort_index(axis = 1, ascending = False)
df.sort_values(by = 4) # 选择数据
dates = pd.date_range('', periods = 6)
df = pd.DataFrame(np.arange(24).reshape((6,4)), index = dates,
columns = ['A', 'B', 'C', 'D']) '''row or column''' # 行不可隔着选择
print(df[0:3])
print(df[['A', 'D']]) '''select by label:loc''' # 行不可隔着选择
print(df.loc['', :])
print(df.loc[:,['A', 'B']]) '''select by position:iloc'''
print(df.iloc[[0, 2], [0, 3]]) '''mixed selection:ix'''
print(df.ix[[0, 2], ['A', 'D']]) '''Boolean indexing'''
print(df[df.B > 5]) # 设置数据
df.iloc[2, 2] = 111
df.loc['', 'D'] = 222
df.B[df.A > 5] = 0
print(df) df['F'] = np.nan
df['E'] = range(6)
print(df) # 处理缺失数据
df.iloc[0, 1] = np.nan
df.iloc[1, 2] = np.nan
print(df)
print(df.dropna(axis = 0, how = 'all')) # how = {'any', 'all'}
print(df.fillna(value = 0))
print(np.any(df.isnull())) # data frame 合并
'''concatenating'''
df1 = pd.DataFrame(np.ones((3,4))*0, columns = ['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.ones((3,4))*1, columns = ['a', 'b', 'c', 'd'])
df3 = pd.DataFrame(np.ones((3,4))*2, columns = ['a', 'b', 'c', 'd']) res = pd.concat([df1, df2, df3], axis = 0, ignore_index = True)
res1 = pd.concat([df1, df2, df3], axis = 1) '''join参数'''
df1 = pd.DataFrame(np.ones((3,4))*0, columns = ['a', 'b', 'c', 'd'], index = [1, 2, 3])
df2 = pd.DataFrame(np.ones((3,4))*1, columns = ['b', 'c', 'd', 'e'], index = [2, 3, 4]) res = pd.concat([df1, df2], join = 'outer', ignore_index = True)
res = pd.concat([df1, df2], join = 'inner', ignore_index = True)
print(res) '''join_axes'''
res = pd.concat([df1, df2], axis = 1, join = 'inner')
res = pd.concat([df1, df2], axis = 1, join_axes = [df1.index]) # append
df1 = pd.DataFrame(np.ones((3,4))*0, columns = ['a', 'b', 'c', 'd'], index = [1, 2, 3])
df2 = pd.DataFrame(np.ones((3,4))*1, columns = ['b', 'c', 'd', 'e'], index = [2, 3, 4])
df3 = pd.DataFrame(np.ones((3,4))*1, columns = ['b', 'c', 'd', 'e'], index = [2, 3, 4]) res = df1.append([df2, df3], ignore_index = True)
res1 = pd.concat([df1, df2, df3])
print(res)
print(res1) # data frame merge
'''merge one key'''
left = pd.DataFrame({'key':['K1','K2','K3'],
'A':[1,2,3],
'B':[4,5,6]}) right = pd.DataFrame({'key':['K0','K1','K3'],
'A':[11,43,53],
'D':[12,-1,0]})
res = pd.merge(left, right, on = 'key', how = 'outer')
print(res) '''merge two or more keys'''
left = pd.DataFrame({'key0':['K1','K2','K3'],
'key1':['X0','X2','X3'],
'A':[1,2,3],
'B':[4,5,6]}) right = pd.DataFrame({'key0':['K0','K1','K3'],
'key1':['X1','X0','K3'],
'A':[11,43,53],
'D':[12,-1,0]})
res = pd.merge(left, right, on = ['key0', 'key1'], how = 'outer')
print(res) '''merge index'''
left = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6]},
index = ['K0', 'K1', 'K2']) right = pd.DataFrame({'A':[11,43,53],
'D':[12,-1,0]},
index = ['K1', 'K2', 'K3'])
res = pd.merge(left, right, left_index = True,
right_index = True)
print(res) '''handle overlapping columns'''
left = pd.DataFrame({'key':['K1','K2','K3'],
'A':[1,2,3],
'B':[4,5,6]}) right = pd.DataFrame({'key':['K0','K1','K3'],
'A':[11,43,53],
'B':[12,-1,0]})
res = pd.merge(left, right, on = 'key',
suffixes = ['_left', '_right'] , how = 'outer')
print(res) # 作图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt '''plot data'''
'''Series'''
data = pd.Series(np.random.randn(1000), index = np.arange(1000))
data = data.cumsum()
data.plot()
print(data) '''Data Frame'''
data = pd.DataFrame(np.random.randn(1000, 4),
index = np.arange(1000),
columns = list("ABCD"))
print(data.head())
data = data.cumsum()
data.plot()
ax = data.plot.scatter(x = 'A', y = 'C',
color = 'Red',
label = 'Class 2')
data.plot.scatter(x = 'A', y = 'B',
color = 'DarkGreen',
label = 'Class 2',
ax = ax)
Python:Pandas学习的更多相关文章
- Python pandas学习总结
本来打算学习pandas模块,并写一个博客记录一下自己的学习,但是不知道怎么了,最近好像有点急功近利,就想把别人的东西复制过来,当心沉下来,自己自觉地将原本写满的pandas学习笔记删除了,这次打算写 ...
- [IT学习]Python pandas 学习
今天学习pandas来处理数据,结果用python 3.5.0的shell来调试,总是报错. 报错中包含如下字样: Traceback (most recent call last): File &q ...
- Python pandas学习笔记
参考文献:<Python金融大数据分析> #导入模块 import pandas as pd #生成dataframe df = pd.DataFrame([10,20,30,40], c ...
- python 数据处理学习pandas之DataFrame
请原谅没有一次写完,本文是自己学习过程中的记录,完善pandas的学习知识,对于现有网上资料的缺少和利用python进行数据分析这本书部分知识的过时,只好以记录的形势来写这篇文章.最如果后续工作定下来 ...
- Python Pandas库的学习(二)
今天我们继续讲下Python中一款数据分析很好的库.Pandas的学习 接着上回讲到的,如果有人听不懂,麻烦去翻阅一下我前面讲到的Pandas学习(一) 如果我们在数据中,想去3,4,5这几行数据,那 ...
- Python: NumPy, Pandas学习资料
NumPy 学习资料 书籍 NumPy Cookbook_[Idris2012] NumPy Beginner's Guide,3rd_[Idris2015] Python数据分析基础教程:NumPy ...
- 用scikit-learn和pandas学习线性回归
对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了. 1. 获取数据,定义问题 没有数据,当然没法研究机器学习 ...
- Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习
http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好 ...
- Python人工智能学习笔记
Python教程 Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 ...
- pandas学习笔记(一)
Pandas是一款开放源码的BSD许可的Python库,为Python编程语言提供了高性能,易于使用的数据结构和数据分析工具.Pandas用于广泛的领域,包括金融,经济,统计,分析等学术和商业领域.在 ...
随机推荐
- Linux核心设计依据(六)该块I/O一层
块设备是能随机存取装置固定大小的数据表设备.如硬盘:字符设备(如串口和键盘)它是按照字符流进入有序进行.不同之处在于是否足够的随机存取数据--这时候,你可以随心所欲地从一个位置跳到访问设备和位置.复杂 ...
- 再议指针---------函数回调(qsort函数原理)
我们是否能写一个这种函数: 能够对不论什么类型数据排序 不论什么人在使用该函数不须要改动该函数代码(即:用户能够不必看到函数源 码,仅仅会调用即可) 思考: 用户须要排序的数据的类型千变万化,可能是i ...
- Spring 4 MVC+Apache Tiles 3 Example
In this post we will integrate Apache Tiles 3 with Spring MVC 4, using annotation-based configuratio ...
- Python logging模块无法正常输出日志
废话少说,先上代码 File:logger.conf [formatters] keys=default [formatter_default] format=%(asctime)s - %(name ...
- Unable to find a single main class from the following candidates
关于start-class,spring boot官方手册是这么说明的: The plugin rewrites your manifest, and in particular it manages ...
- VSCode 小鸡汤 第00期 —— 安装和入门
简介 这将是一个新的系列,将会以 Visual Studio Code(后文都简称为 VSCode 啦)的操作,环境配置,插件介绍为主,为大家不定期的介绍 VSCode 的一些操作技巧,所以取名 VS ...
- Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ignore等7个属性,还可以横竖分开)
1.Qt布局的作用 Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而 ...
- uwp - RichEditBox 解决设置字体样式后滚动条自动回滚顶部的问题
原文:uwp - RichEditBox 解决设置字体样式后滚动条自动回滚顶部的问题 开发中碰到一个问题,当RichEditBox输入的文本达到一定行数的时候,滚动条此时位于底部,改变文本样式(如字体 ...
- DDD实战6 单元测试
1.在Products解决方案文件夹下面新建一个项目 一个单元测试项目 Product.Tests.
- 制作WPF时钟之2
原文:制作WPF时钟之2 前段时间写了一篇"制作简单的WPF时钟",今天再制作了一个更漂亮的WPF时钟,目前仅完成了设计部分,准备将它制作成一个无边框窗体式的时钟. 效果图: ...