索引对象Index
Series和DataFrame中的索引都是Index对象
示例代码:
print(type(ser_obj.index))
print(type(df_obj2.index))
print(df_obj2.index)
运行结果:
<class \'pandas.indexes.range.RangeIndex\'>
<class \'pandas.indexes.numeric.Int64Index\'>
Int64Index([0, 1, 2, 3], dtype=\'int64\')
索引对象不可变,保证了数据的安全
示例代码:
# 索引对象不可变
df_obj2.index[0] = 2
运行结果:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-23-7f40a356d7d1> in <module>()
1 # 索引对象不可变
----> 2 df_obj2.index[0] = 2
/Users/Power/anaconda/lib/python3.6/site-packages/pandas/indexes/base.py in __setitem__(self, key, value)
1402
1403 def __setitem__(self, key, value):
-> 1404 raise TypeError(\"Index does not support mutable operations\")
1405
1406 def __getitem__(self, key):
TypeError: Index does not support mutable operations
常见的Index种类
- Index,索引
- Int64Index,整数索引
- MultiIndex,层级索引
- DatetimeIndex,时间戳类型
Series索引
index 指定行索引名
示例代码:
ser_obj = pd.Series(range(5), index = [\'a\', \'b\', \'c\', \'d\', \'e\'])
print(ser_obj.head())
运行结果:
a 0
b 1
c 2
d 3
e 4
dtype: int64
行索引
ser_obj[‘label’], ser_obj[pos]
示例代码:
# 行索引
print(ser_obj[\'b\'])
print(ser_obj[2])
运行结果:
1
2
切片索引
ser_obj[2:4], ser_obj[‘label1’: ’label3’]
注意,按索引名切片操作时,是包含终止索引的。
示例代码:
# 切片索引
print(ser_obj[1:3])
print(ser_obj[\'b\':\'d\'])
运行结果:
b 1
c 2
dtype: int64
b 1
c 2
d 3
dtype: int64
不连续索引
ser_obj[[‘label1’, ’label2’, ‘label3’]]
示例代码:
# 不连续索引
print(ser_obj[[0, 2, 4]])
print(ser_obj[[\'a\', \'e\']])
运行结果:
a 0
c 2
e 4
dtype: int64
a 0
e 4
dtype: int64
布尔索引
示例代码:
# 布尔索引
ser_bool = ser_obj > 2
print(ser_bool)
print(ser_obj[ser_bool])
print(ser_obj[ser_obj > 2])
运行结果:
a False
b False
c False
d True
e True
dtype: bool
d 3
e 4
dtype: int64
d 3
e 4
dtype: int64
DataFrame索引
来源:https://www.cnblogs.com/qshhl/p/14603321.html
图文来源于网络,如有侵权请联系删除。