美文网首页
pandas快速入门

pandas快速入门

作者: FiliChen | 来源:发表于2020-07-29 14:32 被阅读0次

pandas快速入门

参考10 Minutes to pandas

目录

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

创建对象

返回目录

传入数据列表创建Series对象

s = pd.Series([1,3,5,np.nan,6,8])
    0    1.0
    1    3.0
    2    5.0
    3    NaN
    4    6.0
    5    8.0
    dtype: float64

创建DataFrame对象

df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
创建DataFrame对象.png

数据视图

返回目录

观察数据的头部

df.head()
数据的头部.png

查看DataFrame对象的索引,列名,数据信息

df.index
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')
df.columns
Index(['A', 'B', 'C', 'D'], dtype='object')
df.values
array([[-0.46936354, -1.38929068,  0.84403157,  0.04286594],
       [ 0.98657633, -0.68954348, -0.38326456, -1.10493201],
       [-0.19242554,  1.74076522,  0.73047859, -1.32078058],
       [ 0.04734752, -1.95230265, -0.6915437 , -1.40388308],
       [ 0.23302102,  0.61911183,  0.628579  , -0.80258543],
       [ 0.49394583,  0.84824737,  1.633055  , -0.74056229]])

简单统计

df.describe()
统计.png

数据选取

返回目录

选取

按行选取数据

df[0:3]
按行选取数据.png

通过标签选取数据

df.loc['20130102':'20130104',['A','B']]
通过标签选取数据.png

通过位置选取数据

df.iloc[3:5, 0:2]
通过位置选取数据.png

布尔索引

df[df.A>0]
布尔索引 .png

填充缺失数据

df1.fillna(value=5)
填充缺失数据.png
pd.isnull(df1)
是否为null.png

函数操作

返回目录

统计

纵向求均值

df.mean()
A    0.261411
B    0.094380
C    0.460223
D    5.000000
F    3.000000
dtype: float64

横向求均值

df.mean(1)
2013-01-01    1.461008
2013-01-02    1.182754
2013-01-03    1.855764
2013-01-04    1.080700
2013-01-05    2.096142
2013-01-06    2.595050
Freq: D, dtype: float64

直方统计

s = pd.Series(np.random.randint(0, 7, size=10))
s
0    6
1    1
2    4
3    6
4    3
5    2
6    3
7    5
8    2
9    2
dtype: int64
s.value_counts()
2    3
6    2
3    2
5    1
4    1
1    1
dtype: int64

数据合并

返回目录

Join函数

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

分组

返回目录

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', 'B']).sum()
分组.png

数据变形

返回目录

数据透视表

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)})
df.png
df.pivot_table(values='D', index=['A', 'B'], columns='C')
df.pivot_table.png

数据标签

返回目录

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']
0    a
1    b
2    b
3    a
4    a
5    e
Name: grade, dtype: category
Categories (3, object): [a, b, e]
df["grade"].cat.categories = ["very good", "good", "very bad"]
df["grade"] = df["grade"].cat.set_categories(["very bad", "bad", "medium", "good", "very good"])
df["grade"]
0    very good
1         good
2         good
3    very good
4    very good
5     very bad
Name: grade, dtype: category
Categories (5, object): [very bad, bad, medium, good, very good]

绘图

返回目录

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')
plot.png

导入导出数据

返回目录

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

相关文章

  • pandas快速入门

    pandas快速入门 参考10 Minutes to pandas 目录 创建对象 数据视图 数据选取 数据缺失的...

  • python合道-常规Pandas(1)

    简介 Pandas 中文文档 快速入门 Pandas---Series 系列(Series)是带有标签的一维数组。...

  • 利用Python进行数据分析

    pandas快速入门http://www.jianshu.com/p/d630c14d3ea0pandas教程ht...

  • pandas入门

    pandas入门 简介 pandas包含的数据结构和操作工具能快速简单地清洗和分析数据。 pandas经常与Num...

  • Pandas 快速入门

    Pandas 介绍 Pandas是python的一个数据分析包, 纳入了大量库和一些标准的数据模型,提供了高效地操...

  • pandas快速入门

    pandas有两类数据对象:dataframe和series。Series是一个带标签的一维数组,通常索引在左,值...

  • pandas小案例

    markdown太坑!!本文参见:十分钟快速入门Pandas入门可参照:官方文档入门基础知识可参照:官方文档基础知...

  • pandas入门 01 快速入门

    1 Object Creation 通过list创建Series,使用默认的np.arange(n)作为index...

  • Pandas快速入门笔记

    我正以Python作为突破口,入门机器学习相关知识。出于机器学习实践过程中的需要,我快速了解了一下提供了类似关系型...

  • Pandas快速入门(二)

    继Pandas快速入门(一),接着写: 布尔索引 过滤 使用 isin() 方法过滤: 赋值 虽然用于选择和赋值的...

网友评论

      本文标题:pandas快速入门

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