task3 索引
一、索引器
1.表的列索引
取出多个列,则可以通过[列名组成的列表],其返回值为一个DataFram。
注意这里要把列名放进列表里!
df[['Gender', 'Name']].head()
若要取出单列,且列名中不包含空格,则可以用.列名
取出,这和[列名]
是等价的。
df.Name.head()
这两个操作都很常见。
2.序列的行索引
【a】以字符串为索引的Series
s = pd.Series([1, 2, 3, 4, 5, 6], index=['a', 'b', 'a', 'a', 'a', 'c'])
s['a']
output:
a 1
a 3
a 4
a 5
dtype: int64
如果取出多个索引的对应元素,则可以使用[items的列表]。这个操作和列索引的操作一样。
下面的操作我一下子没有看明白:
为什么输出的顺序是c,a,b?
如果想要取出某两个索引之间的元素,并且这两个索引是在整个索引中唯一出现,则可以使用切片,同时需要注意这里的切片会包含两个端点
s['c': 'b': -2]
output:
c 6
a 4
b 2
dtype: int64
s['c': 'b': -1]
此时的输出是
c 6
a 5
a 4
a 3
b 2
dtype: int64
这很好理解,逆序输出。
s['c': 'b': -3]
此时输出是
c 6
a 3
dtype: int64
再试一次:
s['b': 'c': 3]
此时的输出是
b 2
a 5
dtype: int64
个人理解:
负号代表从后往前,数字是几就代表从后往前数第几个。
【b】以整数为索引的Series
s = pd.Series(['a', 'b', 'c', 'd', 'e', 'f'], index=[1, 3, 1, 2, 5, 4])
s[1]
此时输出为:
1 a
1 c
dtype: objec
不规定索引的时候,默认是从0开始的
s2 = pd.Series(['a', 'b', 'c', 'd', 'e', 'f'])
s2[1]
此时输出为:
‘b’
印证了从0开始!
期末考的我好累,脑子和时间都不够用了,先写到这里吧~