pandas入门

Posted geogre123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas入门相关的知识,希望对你有一定的参考价值。

pandas是python数据分析的一个最重要的工具。

基本使用

import pandas as pd
df = pd.read_csv(file.csv)
# 返回数据的大小
df.shape
# 显示数据的一些对象信息和内存使用
df.info()
# 显示数据的统计量信息
df.describe()

花式索引

我们的主要数据结构就是DataFrame了,DataFrame有两部分构成,一个是列(columns)。列是有名称的或者说有标签的。另一个是索引(index),这里我们为了避孕歧义称之为行(rows),行一般没有名称,但是也可以有名称。
如图所示:
技术图片

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# Author: [email protected]
# Date:2019/3/26
import pandas as pd
import numpy as np

data = {
        animal: [cat, cat, snake, dog, dog, cat, snake, cat, dog, dog],
        age: [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],
        visits: [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
        priority: [yes, yes, no, yes, no, no, no, yes, no, no]
}

labels = [a, b, c, d, e, f, g, h, i, j]

df = pd.DataFrame(data, index=labels)

print(df)

animal age visits priority a cat
2.5 1 yes b cat 3.0 3 yes c snake 0.5 2 no d dog NaN 3 yes e dog 5.0 2 no f cat 2.0 3 no g snake 4.5 1 no h cat NaN 1 yes i dog 7.0 2 no j dog 3.0 1 no

原始索引

原始索引就是类list的索引方式。
当索引对象是切片时就是行索引。

# 原始索引
print(df[1:3])

  animal  age  visits priority
b    cat  3.0       3      yes
c  snake  0.5       2       no

当索引对象是list时就是列索引。

print(df[[age, animal]])
   age animal
a  2.5    cat
b  3.0    cat
c  0.5  snake
d  NaN    dog
e  5.0    dog
f  2.0    cat
g  4.5  snake
h  NaN    cat
i  7.0    dog
j  3.0    dog

位置索引

print(df.iloc[0:5, 1:4])
   age  visits priority
a  2.5       1      yes
b  3.0       3      yes
c  0.5       2       no
d  NaN       3      yes
e  5.0       2       no

标签索引

lociloc的主要区别就是索引要用标签不能用序号。

print(df.loc[[a, b], [animal, age]])
  animal  age
a    cat  2.5
b    cat  3.0

混合索引

其实就是位置索引和标签索引的混合使用方式。

print(df.ix[0:2, [animal, age]])
  animal  age
a    cat  2.5
b    cat  3.0

条件索引

print(df[(df[animal] == cat) & (df[age] < 3)])
  animal  age  visits priority
a    cat  2.5       1      yes
f    cat  2.0       3       no

数据清洗

找到缺失值。

print(df[df[age].isnull()]) # 找到年龄缺失的值
  animal  age  visits priority
d    dog  NaN       3      yes
h    cat  NaN       1      yes

填充缺失值。

df[age].fillna("99", inplace=True)
print(df) # NaN填充为99
animal  age  visits priority
a    cat  2.5       1      yes
b    cat    3       3      yes
c  snake  0.5       2       no
d    dog   99       3      yes
e    dog    5       2       no
f    cat    2       3       no
g  snake  4.5       1       no
h    cat   99       1      yes
i    dog    7       2       no
j    dog    3       1       no

将字符值替换成布尔值

df[priority] = df[priority].map({yes: True, no: False})
print(df)
animal  age  visits  priority
a    cat  2.5       1      True
b    cat    3       3      True
c  snake  0.5       2     False
d    dog   99       3      True
e    dog    5       2     False
f    cat    2       3     False
g  snake  4.5       1     False
h    cat   99       1      True
i    dog    7       2     False
j    dog    3       1     False

速查表

技术图片

 


以上是关于pandas入门的主要内容,如果未能解决你的问题,请参考以下文章

pandas GroupBy上的方法apply:一般性的“拆分-应用-合并”

pandas入门指南

text [检查特定的数据片段]取自论文但有意思应用。 #python #pandas

python之pandas入门操作

pandas入门

Atom编辑器入门到精通 Atom使用进阶