带有重复值的轴索引:
obj = Series(range(5), index=['a', 'a', 'b', 'c'])
obj.index.is_unique # 判断索引是否唯一,返回bool值
对于含有多个索引,在选取数据时,如果某个索引对应多个值,返回一个Series, 而对应单个值得,返回一个标量值。
对于 DataFrame对象与Series方法相似,选个单个唯一索引时,返回一个Series对象;选个单个重复索引时,返回一个DataFrame对象
汇总和计算描述统计:
df4.sum() #每列求和
df4.sum(axis=1) # 每行求和
df.mean(axis=1, skipna=False) #返回各行平均值,如含有NAN,则返回NAN值
参数选项:
axis: DataFrame的行为0,列为1
skipna 排除缺失值,默认为True
level 如果轴是层次化索引的,则依据level 分组索引
df4.idxmax() # 返回每列最大值的索引
df4.idxmin() #返回每列最小值的索引
df4.idxmin(axis=1) #返回行最小值的索引
df4.idxmax(axis=1) #返回行最大值的索引
df4.describe() # 描述每列的状态值
---唯一值、值计数、和成员资格
obj5 = Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'd'])
uniques = obj.unique() # 所有元素去重,结果未排序
obj5.value_counts() # 返回各值出现的频率
pd.value_counts(obj.values, sort=False) # 功能同上,且可以排序
mask = obj.isin(['b', 'c']) #判断 Series或DataFrame 列中元素是否其内。
----处理缺失数据:
string_data = Series(['aardvark', 'artichoke', np.nan, 'avocado'])
string_data.isnull() # 判断元素是否为NAN值,返回布尔值
python内置的None值也会被当做NA处理:
string_data[0] = None
string_data.isnull()
---滤除缺失数据
from numpy import nan as NA
data = Series([1, NA, 3.5, NA, 7])
data.dropna() # 去除掉NA值,对应元索引不变
data[data.notnull()] #功能同上,且可以排序
对于DataFrame对象,dropna默认去除含有缺失数据的整行
data = DataFrame([[1., 6.5, 3.], [1., NA, NA], [NA, NA, NA],[NA, 6.5, 3.]])
cleaned = data.dropna() #去除含有缺失数据的整行
cleaned = data.dropna(how='all') #去除全为缺失数据的整行
如果操作对象改为列的话吗, 只需添加参数, axsi= 1 即可。