pandas 基本功能 (一)

本文详细介绍了Pandas库中Series和DataFrame对象的reindex、drop、索引、选取和过滤等基本功能,以及算术运算和数据对齐的高级用法,是Python数据处理和分析的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas 的基本功能

  • 重新索引 reindex(), ix():作用是创建新索引的新对象

  • 丢弃指定轴上的项

  • 索引、选取和过滤

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

Series 的 reindex 使用方法

obj =  Series  ([ 4.5 ,  7.2 , - 5.3 ,  3.6 ],  index= ['d','b','c','a'] )
obj
d    4.5
b    7.2
c   -5.3
a    3.6
dtype: float64
obj.reindex(['a','b','Y','Z'])# 取索引的交集,没有值的用缺失值补充
a    3.6
b    7.2
Y    NaN
Z    NaN
dtype: float64
obj.reindex(['a','b','Y','Z'], fill_value=0) 
a    3.6
b    7.2
Y    0.0
Z    0.0
dtype: float64
# obj.reindex(['a','b','Y','Z'], method='ffill')

DataFrame 的 reindex的使用方法:可以修改行索引 ,列索引,也可以哦同时修改。

frame = DataFrame(np.arange(9).reshape((3,3)), index=['a','b','d'], columns=['cal','china','cannada'])
frame
calchinacannada
a012
b345
d678
frame1 = frame.reindex(['a','b','c','d']) # 只穿入一个数组,则只改变index行索引
frame1
calchinacannada
a0.01.02.0
b3.04.05.0
cNaNNaNNaN
d6.07.08.0
frame2 = frame.reindex(columns=['cal','y','china','w']) # 通过 columns关键字改变列索引
frame2
calychinaw
a0NaN1NaN
b3NaN4NaN
d6NaN7NaN
frame3 = frame.reindex(index=['a','b','c','d'],columns=['cal','y','china','w'])# 同时改变行列索引
frame3
calychinaw
a0.0NaN1.0NaN
b3.0NaN4.0NaN
cNaNNaNNaNNaN
d6.0NaN7.0NaN

image.png

丢弃指定轴上的项:drop()函数,需要有索引数组或列表即可

frame
calchinacannada
a012
b345
d678
frame.drop('a')
calchinacannada
b345
d678
frame.drop('china',axis=1)# s删除列则需要 axis关键字为1
calcannada
a02
b35
d68

索引、选取和过滤

# 索引使用类似于切片,但是包含最后一个索引
se = Series(np.arange(6), index=['a','b','c','d','e','f'])
se
a    0
b    1
c    2
d    3
e    4
f    5
dtype: int32
se['b':'c']# 切片全部包含
b    1
c    2
dtype: int32
se[['c','e','d']]# 指定Series对象的索引
c    2
e    4
d    3
dtype: int32
se[se<3]
a    0
b    1
c    2
dtype: int32

对DataFrame对象索引 其实是获取一个或者多个列

frame
calchinacannada
a012
b345
d678
frame['cal']
a    0
b    3
d    6
Name: cal, dtype: int32
frame[['cal','china']] # 获取两列
calchina
a01
b34
d67
frame[:2] #选取行,
calchinacannada
a012
b345
frame[frame['china'] > 1]
calchinacannada
b345
d678

image.png

frame.ix['d']
D:\anacoda\lib\site-packages\ipykernel_launcher.py:1: DeprecationWarning: 
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing

See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#ix-indexer-is-deprecated
  """Entry point for launching an IPython kernel.





cal        6
china      7
cannada    8
Name: d, dtype: int32

image.png

算术运算和数据对齐

  • pandas 很重要的一个功能就是可以对不同索引的对象进行算术运算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值