首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python pandas 基础之二

python pandas 基础之二

作者头像
小末快跑
发布2019-07-03 17:35:34
3310
发布2019-07-03 17:35:34
举报
文章被收录于专栏:日常撸知识日常撸知识

1.删除

import numpy as np
import pandas as pd

data=pd.DataFrame(np.arange(16).reshape((4,4)),index=['red','blue','yellow','white'],columns=['ball','pen','pencil','paper'])

传入行索引可以删除行:

data.drop(['blue','yellow'])

删除列,指定列索引,而且选用axis=1:

data.drop(['pen','paper'],axis=1)

2.数据对齐和算术:

pandas可以将两个数据的索引对齐;在算术的时候,如果一个索引,两个数据结构都有,就把它们元素运算,否则结果显示为NaN。

data1=pd.DataFrame(np.arange(16).reshape((4,4)),index=['red','blue','yellow','white'],columns=['ball','pen','pencil','paper'])
data2=pd.DataFrame(np.arange(12).reshape((4,3)),index=['blue','green','white','yellow'],columns=['mug','pen','ball'])

print(data1+data2)

结果:

        ball  mug  paper   pen  pencil
blue     6.0  NaN    NaN   6.0     NaN
green    NaN  NaN    NaN   NaN     NaN
red      NaN  NaN    NaN   NaN     NaN
white   20.0  NaN    NaN  20.0     NaN
yellow  19.0  NaN    NaN  19.0     NaN

算术运算也可以用下面几个函数:

add() #data1.add(data2)

sub()

div()

mul()

DataFrame和Series数据结构间的运算:

ser=pd.Series(np.arange(4),index=['ball','pen','pencil','paper'])

print(data1-ser)

结果为:

        ball  pen  pencil  paper
red        0    0       0      0
blue       4    4       4      4
yellow     8    8       8      8
white     12   12      12     12

如上,DataFrame所有的元素都减去了Series里面与之相同的所有的元素。

3.操作元素的函数:

统计函数:sum(), mean(), max(), min(), describe().

其中describe()可以一次计算出多个统计量,包括四分位数。

print(data1.mean())

结果为:

ball      6.0
pen       7.0
pencil    8.0
paper     9.0
dtype: float64

----------

print(data1.describe())

结果为:

            ball        pen     pencil      paper
count   4.000000   4.000000   4.000000   4.000000
mean    6.000000   7.000000   8.000000   9.000000
std     5.163978   5.163978   5.163978   5.163978
min     0.000000   1.000000   2.000000   3.000000
25%     3.000000   4.000000   5.000000   6.000000
50%     6.000000   7.000000   8.000000   9.000000
75%     9.000000  10.000000  11.000000  12.000000
max    12.000000  13.000000  14.000000  15.000000

---------

apply() 自定义函数来计算行列函数:

def f(x):
    return x.max()-x.min()
result=data1.apply(f)

print(result)

这个函数对一维数列组计算,返回一个结果为一个数值:

ball      12
pen       12
pencil    12
paper     12
dtype: int64

-----

也可以对行进行运算,添加axis=1就可以对行进行运算

def f(x):
    return x.max()-x.min()
result=data1.apply(f,axis=1)

print(result)

结果为:

red       3
blue      3
yellow    3
white     3
dtype: int64

------

通过自定义函数,apply()也可以得到DataFrame返回对象

def f(x):
    return pd.Series([x.min(),x.max()],index=['min','max'])
result=data1.apply(f)

print(result)

上面函数得到一列的最小值和最大值,结果为:

     ball  pen  pencil  paper
min     0    1       2      3
max    12   13      14     15
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小末快跑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档