pandas小节
import pandas as pd
import numpy as np
obj = pd.Series([1,2,-5,-3],index=['a','b','d','c'])#pd.Series()内可以放字典
obj
a 1
b 2
d -5
c -3
dtype: int64
obj.index
obj.reindex(['a', 'b', 'c', 'd','r'])
a 1.0
b 2.0
c -3.0
d -5.0
r NaN
dtype: float64
精确索引
Series的reindex将会根据新索引进⾏重排。如果某个索引值
当前不存在,就引⼊缺失值
obj[obj > 0]#布尔索引
a 1
b 2
dtype: int64
np.exp(obj)
a 2.718282
b 7.389056
d 0.006738
d 0.049787
dtype: float64
pd.isnull(obj)
obj.isnull()
#obj.name()
a False
b False
d False
d False
dtype: bool
将列表或数组赋值给某个列时,其⻓度必须跟DataFrame的⻓度
相匹配。如果赋值的是⼀个Series,就会精确匹配DataFrame的
索引,所有的空位都将被填上缺失值
通过索引⽅式返回的列只是相应数据的视图⽽已,并
不是副本。因此,对返回的Series所做的任何就地修改全都
会反映到源DataFrame上。通过Series的copy⽅法即可指定
复制列
pop ={'Nevada':{2001: 2.4, 2002: 2.9},'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
frame = pd.DataFrame(pop,index=[2001,2002,2003,2000])
frame.reindex(columns=['Nevada','No'])# 相当于横向索引obj.drop('c')
Nevada | No | |
---|---|---|
2001 | 2.4 | NaN |
2002 | 2.9 | NaN |
2003 | NaN | NaN |
2000 | NaN | NaN |
明确指定了索引,内层字典的键会被合并、排序以形成最终的索引。
Index对象是不可变的,因此⽤户不能对其进⾏修改
不可变可以使Index对象在多个数据结构之间安全共享
frame.values
array([[2.4, 1.7],
[2.9, 3.6],
[nan, nan],
[nan, 1.5]])
frame.columns
Index(['Nevada', 'Ohio'], dtype='object')
obj.drop(['d'])#多个就使用中括号
obj.drop('d')#丢弃指定轴上,可以是行或者列索引
a 1
b 2
c -3
dtype: int64
使⽤轴标签(loc)
整数索引(iloc)data.icol[ [行],[列] ]
从DataFrame选择⾏和列的⼦集