pandas-索引操作-算数运算

导入模块

import numpy as np 
import pandas as pd
from pandas import Series,DataFrame

1.索引

#创建一个s1
s1=Series(range(1,5),index=list('ABCD'))
#索引不可修改否则报错 如下
s1.index[0]='a'
#但是可以整体替换
s1.index=list('abcd')

索引的删除
obj.drop('index,axis=0,inplace=False)默认删除行索引
obj.drop('index,axis=1,inplace=False)删除列索引
默认都是返回新值除非inplace=True。

#创建一个df1
df1 = DataFrame(
    np.arange(16).reshape(4,4),
    index = list('abcd'),
    columns = 'one/two/three/four'.split('/')
)
#删除a行
df1.drop('a')
#删除a和c行
df1.drop(['a','c'])
#删除two和four列
df1.drop(['two','four'],axis=1)

索引的选取与过滤
选取就是读取
过滤就是选取想要的数据

#创建一个s2
list2=list(range(6,13))
np.random.shuffle(list2)
s2=Series(list2,index=list('abcdefg'))

#index:a,value:6
for each in s2.index:
    print(f'index:{each},value:{s2[each]}')

#找出大于9的
for each in s2.index:
    if s2[each]>9:
        print(f'index:{each},value:{s2[each]}')

Series支持bool序列读取

s2<9
s2[s2<9]
s2[s2%2==0]
#重置索引,会匹配,匹配不上则NAN
s2.reindex(list('ABCDEfgH'))
#fill_value=xxx,填充nan的位置为xxx
s2.reindex(list('ABCDEfgH'),fill_value=0)

2.算数运算与数据对齐

Series的运算

#准备俩Series
s1=Series([1,2,3,4],index=list('abcd'))
s2=Series([5,6,7,8,9],index=list('abefd'))
#算数加法
s1+s2
s1.add(s2)
#在执行 加法 前 把匹配不上的位置换成指定值 如0 然后执行加法
s1.add(s2,fill_value=0)
#直接对莫对象填充nan xxx.fillna(yyy) 将xxx中nan换成yyy
s1.add(s2).fillna(0)

DataFrame算数运算

#创建df1,df2
df1=DataFrame(np.arange(9).reshape(3,3),
             index=list('ABC'),
             columns=list('abc'))
df2=DataFrame(np.arange(10,30).reshape(4,5),
             index=list('BCDE'),
             columns=list('acdef'))

df.add(df2,fill_value=xxx)
会在加之前 填充规则:行列组合有一个值就填充,都没有的就不填充

df1.add(df2,fill_value=666).fillna(0)
#减法
df1.sub(df2)
#乘法
df1.mul(df2)
#除法
df1.divide(df2)
#取模
df1.mod(df2)

DataFrame 与 Series运算
df列Series行索引匹配,能匹配上则运算,匹配不上则nan

df1.add(s1)
df1.add(Series([10,20,30,40,50],index='one,two,three,four,c'.split(',')))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值