【Python数据分析之pandas02】数据结构的基本功能--1

本文介绍了Python数据分析库pandas中的数据结构基本功能,包括如何重新索引、丢弃指定轴上的项以及索引选取和过滤。在重新索引时,使用reindex方法允许对Series和DataFrame的index进行修改,如果索引值不存在则引入NaN,可通过ffill和bfill进行填充。drop方法用于丢弃指定轴上的元素。在过滤和选取方面,Series和DataFrame的索引各有特点,DataFrame可以通过切片和布尔选取来过滤数据。

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

重新索引

    Series和DataFrame在创建时可以对其index属性进行修改(DataFrame中index修改行属性)。创建后需要对index修改需要用到reindex方法。

s1 = pd.Series([1,2,3],index=['c','a','b'])
s1.reindex(['a','b','c'])

'''
结果:
a    2
b    3
c    1
dtype: int64
'''

    如果某个索引值在原Series中不存在,就会引入缺失值NaN。一般情况下,对于有序序列,重新索引时会做插值处理。

s1 = pd.Series(['red','orange','yellow'],index=[0,2,4])
s1
'''
0       red
2    orange
4    yellow
dtype: object
'''

s1.reindex([0,1,2,3,4,5],method='ffill')
'''
0       red
1       red
2    orange
3    orange
4    yellow
5    yellow
dtype: object
'''

    其中向前填充的method是ffill,向后填充的method是bfill。

    对与DataFrame,若只传入一个序列,则重新索引行,想要索引列需要用columns属性。

#传入一个数组
dict1 = {"neveda":{2001:2.4,2002:2.9},
         "ohio":{2001:1.7,2002:3.6}}
frame = pd.DataFrame(dict1)
frame.reindex([2002,2001])

    结果:


#修改columns属性
dict1 = {"neveda":{2001:2.4,2002:2.9},
         "ohio":{2001:1.7,2002:3.6}}
frame = pd.DataFrame(dict1)
frame.reindex(index=[2002,2001],columns=['ohio','neveda'])

    结果:


    下面记录其他一些常用的reindex属性:

    1.fill_value:重新索引的过程中,缺失值的替代值。

    2.limit:向前填充或向后填充的最大填充量。

丢弃指定轴上的项

    采用drop方法:

s1 = pd.Series([1,2,3],index=['c','a','b'])
s1.reindex(['a','b','c'])
s1.drop('b')
'''
结果;
c    1
a    2
dtype: int64
'''

索引选取和过滤

    Series索引与Numpy数组没什么不同,只是Series索引不止是整数。而DataFrame的索引就是获取整个行或列。

    Series索引需要注意的是,它的切片与数组不同,即两侧都是闭区间。

s1 = pd.Series([1,2,3],index=['c','a','b'])
s1['c':'b']
'''
c    1
a    2
b    3
dtype: int64

'''

    DataFrame索引可以通过切片或bool选取行:

data =pd.DataFrame(np.arange(16).reshape(4,4),
                index=['one','two','three','four'],
                columns=['first','second','third','forth'])
data[data['third']>5]

    结果:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值