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用于广泛的领域,包括金融,经济,统计,分析等学术和商业领域.在 ...
随机推荐
- 【codeforces 765C】Table Tennis Game 2
[题目链接]:http://codeforces.com/contest/765/problem/C [题意] 枚举游戏先拿到k分的人胜; 然后两个人一个人得了a分,一个人得了b分; 问你最多可能进行 ...
- Graphics-Processing Architecture Based on Approximate Rendering
BACKGROUND The present invention generally relates to the processing of graphics data, and particula ...
- oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全
表空间是数据库的逻辑划分,一个表空间仅仅能属于一个数据库. 全部的数据库对象都存放在建立指定的表空间中.但主要存放的是表, 所以称作表空间.在oracle 数据库中至少存在一个表空间.即S ...
- 【codeforces 791B】Bear and Friendship Condition
[题目链接]:http://codeforces.com/contest/791/problem/B [题意] 给你m对朋友关系; 如果x-y是朋友,y-z是朋友 要求x-z也是朋友. 问你所给的图是 ...
- 解决eclipse 保存卡顿的问题
开发十年,就只剩下这套Java开发体系了 >>> eclipse 如果启动慢,还可以接收. 可是如果是 保存的时候卡顿, 有时候会 卡顿 3秒-5 秒的,感觉到写代码特别的不顺畅 ...
- python request get
import requests from urllib import parse # 返回response resp = requests.get("https://www.baidu.co ...
- 商(quotient)—— 两数之比
1. IQ:Intelligence quotient IQ=MACA×100 MA:心智年龄(mental age) CA:实足年龄(chronological age)
- 利用WPF建立自己的3d gis软件(非axhost方式)(三)矢量数据显示控制
原文:利用WPF建立自己的3d gis软件(非axhost方式)(三)矢量数据显示控制 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密 ...
- Cordova之打包签名apk
首先是关于apk签名,Android程序的安装是以包名(package name)进行区分的,就是同样的包名会被认作是同一个程序.这样就可以进行升级.替换.但是包名是一个可以被查看的字符串,这样就可能 ...
- Android 混淆[学习笔记]
Android 混淆 Gradle的简介: http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html ...