美文网首页
Pandas-office-10分钟开始

Pandas-office-10分钟开始

作者: longgb246 | 来源:发表于2016-11-16 10:08 被阅读0次

基本

# -*- coding:utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

1、创建数据框

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
left = pd.DataFrame({'key': ['foo', 'foo'], 'lval': [1, 2]})
right = pd.DataFrame({'key': ['foo', 'foo'], 'rval': [4, 5]})

2、查看数据

df.head()
df.tail(3)
df.describe()
df.T
df.sort_index(axis=1, ascending=False)  # 按照行名、列名排列
df.sort_values(by='B')

3、选择

# .loc()
# .iloc()

4、缺失值

df['E'] = [1, 2, np.nan, 1, 2, np.nan]
df.dropna(how='any')
df.fillna(value=5)
pd.isnull(df)

5、运用

df.apply(np.cumsum)

6、交并

df = pd.DataFrame(np.random.randn(10, 4))
pieces = [df[:3], df[3:7], df[7:]]
pd.concat(pieces, axis=0)
pd.concat([df, df], axis=1)
pd.merge(left, right, on='key')
left.merge(right, on='key')

7、groupby

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

8、重组数据框

tuples = list(zip(*[['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
                    ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame(np.random.randn(8, 2), index=index, columns=['A', 'B'])
df2 = df[:4]
stacked = df2.stack()
stacked.unstack()
stacked.unstack(1)
stacked.unstack(0)

Pivot Tables

9、时间序列

rng = pd.date_range('1/1/2012', periods=100, freq='S')  # 按秒进行
rng2 = pd.date_range('3/6/2012 00:00', periods=5, freq='D')  # 按天进行
rng3 = pd.date_range('1/1/2012', periods=5, freq='M')  # 按月进行,保留天数
ts = pd.Series(np.random.randn(len(rng3)), index=rng3)
ps = ts.to_period()  # 天变为月,仅保留月数
ps.to_timestamp()  # 月变为天
prng = pd.period_range('1990Q1', '2000Q4', freq='Q-NOV')  # 按季度进行
ts = pd.Series(np.random.randn(len(prng)), prng)
ts.index = (prng.asfreq('M', 'e') + 1).asfreq('H', 's') + 9  # 季度转化为日期,指定时间

10、Categoricals 分类的使用

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")
df["grade"].cat.categories = ["very good", "good", "very bad"]
df["grade"] = df["grade"].cat.set_categories(["very bad", "bad", "medium", "good", "very good"])
df.sort_values(by="grade")df.groupby("grade").size()

11、画图

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

相关文章

  • Pandas-office-10分钟开始

    基本 1、创建数据框 2、查看数据 3、选择 4、缺失值 5、运用 6、交并 7、groupby 8、重组数据框 ...

  • 早晨赖床30分钟

    不知为什么今天早晨赖床30分钟 然后就开始了秀媛走路 秀媛走路50分钟后 开始做拉伸10分钟 开始做早餐 开始吃早...

  • 先开始5分钟

    我之前有个习惯,在开始一件有挑战的事情前,喜欢做计划,在觉得自己还没有准备充分前,不会轻易开始行动。 这样的习惯造...

  • 从五分钟开始

    前天点赞的一篇文章班主任培训[https://www.jianshu.com/p/4bd4b6504a0b]里,我...

  • 站桩日记60天~90天

    第60天42分钟。 刚开始站几分钟就接连打两个屁。 二十几分钟开始身体抖动,后脑勺,脖子汗珠滴下。 40分钟闹钟响...

  • 常规训练第六天

    今天开始加强,时间从10分钟变为15分钟

  • 一分钟经理人(11.5):新征程

    从本篇开始,我们将离开一分钟经理人最开始的部分,即有关一分钟目标,一分钟称赞和一分钟批评故事,进而开始四个相对独立...

  • 2018.8.31 健身日记

    今天约了八点半开始练习,后来比较晚才开始。我自己先跑步热身十分钟。每分钟以半分钟走半分钟跑的形式坚持了十分钟。之后...

  • 《开启减肥》

    《开启减肥》 开启减肥, 此刻开始。 从喝一杯水(非饮料)开始, 从站立(挺直腰背哦)10分钟开始, 从散步5分钟...

  • 【0824晨读感悟】战胜拖延

    今天又学习了战胜拖延症的几个方法。 几分钟技巧 把手机关掉,花几分钟去开始做书面工作。只要几分钟,就是很好的开始,...

网友评论

      本文标题:Pandas-office-10分钟开始

      本文链接:https://www.haomeiwen.com/subject/ogelpttx.html