Pandas
BQW_
吉林大学
北京大学
目前的兴趣:自然语言处理
展开
-
Pandas:处理缺失数据
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、Pandas中的缺失值1.Numpy中的nans = Series(['a','b',np.nan,'c','d'])pd.isnull(s)0 False1 False2 True3 ...原创 2018-04-14 20:21:10 · 2041 阅读 · 0 评论 -
Pandas:Series和DataFrame删除指定轴上数据
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、drop方法:产生新对象1.Serieso = Series([1,3,4,7],index=['d','c','b','a'])print(o.drop(['d','b']))c 3a 7dtype:...原创 2018-04-13 22:29:09 · 3871 阅读 · 0 评论 -
Pandas:Series和DataFrame间的算术元素
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、Series与Seriess1 = Series([1,3,5,7],index=['a','b','c','d'])s2 = Series([2,4,6,8],index=['a','b','c','e'])索引对齐项相...原创 2018-04-13 22:56:18 · 3373 阅读 · 0 评论 -
Pandas:排名与排序
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、排序1.按索引排序Seriess = Series([3,1,7,0],index=['c','d','a','b'])s.sort_index()a 7b 0c 3d 1dtype...原创 2018-04-13 23:22:53 · 2613 阅读 · 0 评论 -
Pandas:统计函数与apply
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、统计函数 方法 说明 count 非NA值的数量 describe 针对Series或各DataFrame列计算汇总统计 min、max 计算最小值和最大值 argmin、arg...原创 2018-04-14 00:08:26 · 2841 阅读 · 0 评论 -
Pandas:GroupBy中的数据聚集
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、聚集函数1.聚集函数就是一种将一组数转换为一个标量值的函数2.经过优化的groupby聚集函数 函数名 说明 count 分组中非NA值的数量 sum 非NA值的和 mean...原创 2018-04-19 21:16:32 · 4609 阅读 · 0 评论 -
Pandas:分组级的运算和转换--transform和apply
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、介绍聚集函数只是将一组值转换为一个标量值,其实还可以将更多类型的函数应用到分组上,下面的transform和apply就提供这样的功能。二、transformtransform中传入的函数只能返回两种结果,可以广播的标量值或...原创 2018-04-19 22:03:48 · 5595 阅读 · 0 评论 -
Pandas:apply的三个应用案例
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、使用cut或qcut进行分组,然后在分组上apply1.cutdf = DataFrame({'data1':np.random.randn(1000), 'data2':np.rando...原创 2018-04-20 10:40:37 · 3572 阅读 · 0 评论 -
Pandas:透视表(pivotTab)和交叉表(crossTab)
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、透视表(pivotTab)透视表就是将指定原有DataFrame的列分别作为行索引和列索引,然后对指定的列应用聚集函数(默认情况下式mean函数)。df = DataFrame({'类别':['水果','水果','水果','蔬菜...原创 2018-04-20 11:04:05 · 42518 阅读 · 1 评论 -
Pandas时间序列:移动窗口及绘图
import pandas as pdimport numpy as npimport matplotlib.pyplot as plt%matplotlib inlineclose_px_all = pd.read_csv('stock_px.csv',parse_dates=True,index_col=0)close_px = close_px_all[['AAPL','MS...原创 2018-07-09 01:40:20 · 5573 阅读 · 1 评论 -
Python时间类型的处理
一、时间类型时间戳(timestamp):特定的时刻。固定时期(period):具体的一段时间,例如2007年1月。时间间隔(interval):由起始和结束时间戳表示。period可以看做interval的特例。二、Python中的时间数据类型1.datetime.datetime用于表示timestamp类型from datetime import date...原创 2018-07-03 22:48:09 · 3131 阅读 · 0 评论 -
Pandas时间序列:to_datetime
from datetime import datetimeto_datetime通常用于处理成组日期datestrs = ['3/7/2018','4/7/2018']pd.to_datetime(datestrs)DatetimeIndex(['2018-03-07', '2018-04-07'], dtype='datetime64[ns]', freq=None)...原创 2018-07-03 23:26:19 · 4733 阅读 · 0 评论 -
Pandas时间序列:索引方式
from datetime import datetimeimport pandas as pdimport numpy as np一、构建以datetime为索引的Seriesdates = [datetime(2018,7,1),datetime(2018,7,3),datetime(2018,7,5),datetime(2018,7,7),datetime(2018,7,...原创 2018-07-04 00:15:57 · 6698 阅读 · 1 评论 -
Pandas时间序列:生成指定范围的日期
import pandas as pdimport numpy as np1.生成指定范围的日期pd.date_range('4/1/2018','4/5/2018')DatetimeIndex(['2018-04-01', '2018-04-02', '2018-04-03', '2018-04-04', '2018-04-05'], ...原创 2018-07-04 23:59:47 · 21826 阅读 · 0 评论 -
Pandas时间序列:频率和日期偏移量
import pandas as pdimport numpy as np一、介绍pandas中的频率是由一个基础频率(例如“日”、“月”)和一个乘数组成。基础频率通常以一个字符串别名表示,比如“D”表示日,“M”表示月。对于每个基础频率,都有一个被称为日期偏移量(date offset)的对象与之对应,比如日期偏移量Hour对应的频率是H。二、日期偏移量fr...原创 2018-07-05 00:53:23 · 6859 阅读 · 0 评论 -
Pandas时间序列:移动数据
import pandas as pdimport numpy as npts = pd.Series(np.random.randn(4),index=pd.date_range('1/1/2000',periods=4,freq='M'))ts2000-01-31 1.3002952000-02-29 -1.4728912000-03-31 1.590408...原创 2018-07-05 01:09:43 · 2128 阅读 · 0 评论 -
Pandas时间序列:时区处理
import pandas as pdimport numpy as np一、基本概念介绍UTC:协调世界时,全世界唯一的统一时间;DST:夏令时,即不同国家不同地区的时间是不同的;时区是以UTC偏移量的形式表示的。例如,夏令时期间,纽约比UTC慢4小时,而全年其他时间比UTC慢5小时;二、Python中的时区第三方库pytzimport pytz1.通过...原创 2018-07-05 23:23:00 · 14340 阅读 · 0 评论 -
Pandas时间序列:时期(period)及其算术运算
import pandas as pdimport numpy as np一、时间类型及其在python中对应的类型时间戳–timestamp时间间隔–timedelta时期–period二、时期时期表示的是时间区间,比如数日、数月、数季、数年等1.定义一个Periodp = pd.Period(2007,freq='A-DEC') #表示以12月...原创 2018-07-06 23:20:05 · 31604 阅读 · 4 评论 -
Pandas:Series和DataFrame的重新索引函数--reindex
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、reindex函数的参数 参数 说明 index 用作索引的新序列。即可以是Index实例,也可以是其他序列型的Python数据结构。Index会被完全使用,就像没有任何复制一样 method 插值...原创 2018-04-13 22:13:14 · 4313 阅读 · 0 评论 -
Pandas:DataFrame的行列操作
import numpy as npimport pandas as pdfrom pandas import Series,DataFramedata = {'数量':[3,2,5], '价格':[10,9,8]}一、创建时指定行和列索引及其顺序在指定列索引时,若该列不存在,则初始化该列为NaNdf = DataFrame(data,columns=['品...原创 2018-04-13 21:23:34 · 5222 阅读 · 0 评论 -
Pandas:多级索引--高维数据
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、创建多级索引data = Series(np.random.randn(10),index=[['x','x','x','x','x','x','y','y','y','y'], ...原创 2018-04-14 20:52:00 · 7151 阅读 · 0 评论 -
Pandas:多级索引的操作--调整顺序、排序、汇总、指定列为索引
import numpy as npimport pandas as pdfrom pandas import Series,DataFramedf = DataFrame(np.arange(12).reshape((4,3)), index = [['a','a','b','b'],[1,2,1,2]], columns...原创 2018-04-14 21:12:07 · 22235 阅读 · 4 评论 -
Pandas:按列合并数据集--merge函数
import numpy as npimport pandas as pdfrom pandas import Series,DataFramedf1 = DataFrame({'key':['b','b','a','c','a','a','b'], 'data1':range(7)})df2 = DataFrame({'key':['a','b','d']...原创 2018-04-14 21:36:36 · 59607 阅读 · 1 评论 -
Pandas:按索引合并数据集
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、merge函数left1 = DataFrame({'水果':['苹果','梨','草莓'], '价格':[3,4,5], '数量':[9,8,7]}).set...原创 2018-04-15 13:13:12 · 45244 阅读 · 0 评论 -
Pandas:连接数据集--concat
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、Numpy数组的连接–concatenatea = np.arange(6).reshape(2,3)aarray([[0, 1, 2], [3, 4, 5]])1.垂直连接np.concate...原创 2018-04-15 19:04:13 · 1743 阅读 · 0 评论 -
Pandas:移除重复数据
import pandas as pdimport numpy as npfrom pandas import Series,DataFrame一、unique:只能应该与Seriess = Series(['a','b','a','c','b'])s.unique()array(['a', 'b', 'c'], dtype=object)二、drop_dupl...原创 2018-04-16 17:12:38 · 3491 阅读 · 0 评论 -
Pandas:利用函数或字典进行数据转换--map
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、利用字典进行映射df = DataFrame({'食物':['苹果','橘子','黄瓜','番茄','五花肉'], '价格':[7,5,4,3,12], '数量':[5,8...原创 2018-04-16 17:42:13 · 5890 阅读 · 0 评论 -
Pandas:值替换--replace
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、replace的使用s = Series([1,2,3,4,5,6])s.replace(6,100)0 11 22 33 44 55 100dtype...原创 2018-04-16 17:49:41 · 9728 阅读 · 0 评论 -
Pandas:重命名各个轴上的索引--rename
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、使用索引的map函数df = DataFrame(np.arange(12).reshape(3,4),index=['apple','pear','strawberry'],columns=['a','b','c','d'])p...原创 2018-04-16 18:01:40 · 3731 阅读 · 0 评论 -
Pandas:数据的离散化
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、cut的使用将ages按照“18到25”、“26到35”、“35到60”以及“60以上”进行划分ages = [20,22,25,27,21,23,37,31,61,45,41,32]bins = [18,25,35,60,1...原创 2018-04-16 18:17:22 · 5137 阅读 · 2 评论 -
Pandas:随机重排列和随机采样--permutation和take
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、随机重排列df = DataFrame({'水果':['苹果','梨','草莓'], '价格':[7,8,9], '数量':[3,4,5]})print(df) ...原创 2018-04-16 18:46:19 · 13856 阅读 · 1 评论 -
Pandas:类别变量向量化--get_dummies
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、向量化df = DataFrame({'key':['b','b','a','c','a','b'], 'data1':range(6)})print(df) data1 key0 ...原创 2018-04-16 18:58:26 · 12062 阅读 · 0 评论 -
Pandas:重塑(stack)和轴向旋转(pivot)
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、重塑 stack:将数据的列索引旋转为行索引 unstack:将数据的行索引旋转为列索引df = DataFrame({'水果':['苹果','梨','草莓'], '数量':[3,4...原创 2018-04-16 23:24:33 · 10401 阅读 · 0 评论 -
Pandas:GroupBy的七种方式
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame一、GroupBy的介绍groupby就是将DataFrame按照指定的列进行分组,然后在每个组上应用函数进行映射,最后将映射的结果进行合并。Pandas中的groupby只是返回GroupBy对象,它只是记录了关于分组的信息,并不进行...原创 2018-04-18 23:02:07 · 9493 阅读 · 0 评论 -
Pandas:GroupBy--对分组进行迭代
import pandas as pdimport numpy as npfrom pandas import Series,DataFramedf = DataFrame({'key1':['a','a','b','b','a'], 'key2':['one','two','one','two','one'], 'data1':n...原创 2018-04-18 23:28:23 · 5975 阅读 · 0 评论 -
Pandas中的数据结构:Series
from pandas import Seriesimport pandas as pdimport numpy as np一.介绍Series由一组数据和一组索引组成o = Series([1,2,3,4])print(o)print(o.values) # 数据print(o.index) # 索引0 11 22 33 4d...原创 2018-04-13 18:13:35 · 1366 阅读 · 0 评论 -
Pandas:创建DataFrame的三种方式
from pandas import Series,DataFrameimport pandas as pd1.使用包含列表的字典创建DataFramedata = {'水果':['苹果','梨','草莓'], '数量':[3,2,5], '价格':[10,9,8]}df = DataFrame(data)print(df) 价格 数量 ...原创 2018-04-13 20:40:44 · 167382 阅读 · 1 评论 -
Pandas时间序列:重采样及频率转换
import pandas as pdimport numpy as np一、介绍重采样(resampling)指的是将时间序列从一个频率转换到另一个频率的处理过程;将高频率(间隔短)数据聚合到低频率(间隔长)称为降采样(downsampling);将低频率数据转换到高频率则称为升采样(unsampling);有些采样即不是降采样也不是升采样,例如将W-WED(每周三)转换为...原创 2018-07-07 02:49:04 · 13306 阅读 · 1 评论