python汇总函数名称 python 数据汇总( 二 )


1、Series.reindex(index=['x1','x2','x3'],fill_value=https://www.04ip.com/post/10)
将df重新索引,并且将NaN空值用10进行填充
2、Series.reindex(index=range(15),method='ffill')
前项填充,后面的值用前面的值进行填充
通过reindex想到,如果想新增一个空列或者空行,可以用reindex方法,同样地,想减少某些行或者某些列,也可以用reindex方法 。
继reindex之后删除行列的函数操作
Series.drop('A')#删除'A'所对应的值
DataFrame.drop(label,axis)
label可以是行名也可以是列名,label是行的话axis是0,label是列的话axis是1 。
** 删除行还可以用 del df['A']
nan是numpy的一种数据类型,np.nan,float类型
任何数据与nan的运算结果都是nan
1、nan in Series
Series.isnull()--返回value为True或者False的Series
Series.notnull()--返回value为True或者False的Series
Series.dropna()--返回删除nan值后的Series
Series.fillna(method='ffill')--前项插值,按照前面的值填充后面的空值
2、nan in DataFrame
df.isnull()--返回value为True或者False的DataFrame
df.notnull()--返回value为True或者False的DataFrame
df.dropna(axis=0/1,how='any/all',thresh=None)
说明:axis表示删除行为nan或者列为nan;
any表示只要有一个为空,all表示行中的每个元素或者列中的每个元素为空;
thresh是阈值的意思,表示某行或者某列nan的个数达到阈值的个数时才删除该行或该列 。
df.fillna(value=https://www.04ip.com/post/1)---所有的空值都填充为1
df.fillna(value=https://www.04ip.com/post/{0:0,1:1,2:2}) ---将0列的空值填为0,1列的空值填为1,2列的空值填为2,默认为填充列
注意:fillna和dropna的特点,生成新的DataFrame,原来的DataFrame不变 。
1、多重索引介绍
Series = pd.Series(np.random.randn(6),index=[['1','1','1','2','2','2'],['a','b','c','a','b','c']])
'1','2'为一级索引,'a','b','c'为二级索引
df 可以看做是索引的'1','2'的Series
Series['1']--Series
Series['1']['a']--value
Series[:,'a'] --选择'1'和'2'中的'a'对应的值
2、多重索引格式转为二维DataFrame
df = Series.unstack() --转为二维DataFrame
3、多重索引在DataFrame中的操作
1、 map函数与apply函数、applymap函数的区别:
1)map函数对Series中的每个元素作用;
2)applymap函数对DataFrame中的每个元素作用;
3)apply函数对对DataFrame和Series的一列做整体运算 。
2、Series.replace(to_replace=[2,3,4],values=[20,30,40])替换Series中多个值
Series.replace({1:10,2:20})将索引为1的值替换为10 , 将索引为2的值替换为20
df.sum()--默认按照列进行求和,nan的值被忽略
【python汇总函数名称 python 数据汇总】df.min()--默认按照列求最小值
df.max()--默认按照列求最大值
df.mean()--默认按照列求平均值
df.describe()--默认按照列进行描述
df.sum(axis=1)--按行求和,nan的值被忽略
#axis=0表示对横轴进行操作,但是运算中表现为纵轴操作
#axis=1表示对纵轴进行操作 , 但是运算中表现为横轴操作
bins = [0,59,70,80,100],bins是分割范围
score_cat = pd.cut(Series,bins)---得到catgory类型的数据
DataFrame的分箱技术很棒?。?
pd['catgory'] = pd.cut(df['a'],bins=[0,59,70,80,100],labels=['low','ok','good','great'])
--新增一列,将a列的值按照labels进行分类标记 , good!!!
#生成长度为3的随机字符串pd.util.testing.rands(3)
1、按照一列分组
g = df.groupby('city')
g是分组类型数据,打印不出来,所以看不到,但是有属性和方法可以间接的了解
1) g.groups--得到分的几个组 , 和每个组包含的索引

推荐阅读