Pandas常用命令-2

计数

s = pd.Series(np.random.randint(0, 7, size=10))
s.value_counts()

把数据拼接起来

df = pd.DataFrame(np.random.randn(10, 4))
pieces = [df[:3], df[3:7], df[7:]]
pd.concat(pieces)

Join ( left, right, inner, outer )

http://pandas.pydata.org/pandas-docs/stable/merging.html#merging-join

left = pd.DataFrame({'key' : ['foo', 'foo'],
                    'lval' : [1, 2]})
right = pd.DataFrame({'key' : ['foo', 'foo'],
                     'rval' : [4, 5]})
print left
print right
pd.merge(left, right, on='key')

分组统计 groupby

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
                         'foo', 'bar', 'foo', 'bar'],
                  'B' : ['one', 'one', 'two', 'three',
                        'two', 'two', 'one', 'three'],
                  'C' : np.random.randn(8),
                  'D' : np.random.randn(8)})
print df
print df.groupby(['A', 'B']).sum()

Pivot table

df = pd.DataFrame({'A' : ['one', 'one', 'two', 'three'] * 3,
                  'B' : ['A', 'B', 'C'] * 4,
                  'C' : ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 2,
                   'D': np.random.randn(12),
                  'E' : np.random.randn(12)})
pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])

生成时间序列

# freq='S' 秒的递进
rng = pd.date_range('1/1/2012', periods=100, freq='S')
print rng[:5]
ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
print ts.head()

给数据加类别标签

df = pd.DataFrame({'id':[1,2,3,4,5,6], 
                   "raw_grade":['a', 'b', 'b', 'a', 'a', 'e']})
df["grade"] = df["raw_grade"].astype("category")
print df
df["grade"].cat.categories = ["very good", "good", "very bad"]
df["grade"] = df["grade"].cat.set_categories(["very bad", "bad", "medium ", "good", "very good"])
print df
print df.groupby("grade").size()

画图

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,
                  columns=['A', 'B', 'C', 'D'])
df = df.cumsum()
plt.figure(); df.plot(); plt.legend(loc='best')

读取写入 csv,excel 文件

df.to_csv('foo.csv')
pd.read_csv('foo.csv')
df.to_excel('foo.xlsx', sheet_name='Sheet1')
pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏移动开发

ButterKnife和Realm同时引用的小问题

832
来自专栏hbbliyong

依赖注入(IOC)二

上一章我们讲了构造注入与设值注入,这一篇我们主要讲接口注入与特性注入。 接口注入 接口注入是将抽象类型的入口以方法定义在一个接口中,如果客户类型需要获得这个...

3537
来自专栏算法channel

玩转Pandas,让数据处理更easy系列3

前面介绍了Pandas最重要的两个类:Series和DataFrame,讲述了这两种数据结构常用的属性和操作,比如values,index, columns,索...

1021
来自专栏chenssy

【死磕Java并发】-----J.U.C之阻塞队列:SynchronousQueue

原文出处http://cmsblogs.com/ 『chenssy』 【注】:SynchronousQueue实现算法看的晕乎乎的,写了好久才写完,如果当中有什...

4067
来自专栏Golang语言社区

理解Go语言Web编程(上)

断断续续学Go语言很久了,一直没有涉及Web编程方面的东西。因为仅是凭兴趣去学习的,时间有限,每次去学,也只是弄个一知半解。不过这两天下定决心把Go语言Web编...

37412
来自专栏玩转JavaEE

Shiro中的授权问题(二)

上篇博客(Shiro中的授权问题 )我们介绍了Shiro中最最基本的授权问题,以及常见的权限字符的匹配问题。但是这里边还有许多细节需要我们继续介绍,本节我们就来...

4475
来自专栏计算机视觉与深度学习基础

Leetcode 37 Sudoku Solver 深搜基础题+位运算

Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cel...

1897
来自专栏影子

Java解析OFFICE(word,excel,powerpoint)以及PDF的实现方案及开发中的点滴分享

58416
来自专栏Java架构沉思录

Java中如何提升锁性能

比如100个人去银行办理业务,要填一百张表,但是只有一支笔,那么很显然,每个人用笔的时间越短,效率也就越高。看代码:

892
来自专栏牛肉圆粉不加葱

揭开Spark Streaming神秘面纱⑤ - Block 的生成与存储

ReceiverSupervisorImpl共提供了4个将从 receiver 传递过来的数据转换成 block 并存储的方法,分别是:

732

扫码关注云+社区

领取腾讯云代金券