Python12-pandas整理04

  • 数值替换
  • 数值排序
  • 数值排名
  • 数值删除
  • 数值计数
  • 唯一值获取
  • 数值查找
  • 区间划分
  • 行列操作

数值替换

  • replace

           replace(A,B)表示将A替换成B。

           df['年龄'].replace(240,33)     

           df.replace(np.NaN,0)——对全表的缺失值进行替换,相当于fillna

           df.replace([A,B],C)     df['年龄'].replace([240,260],33)     

           df.replace({'A':'a', 'B','b'})             df.replace({240: 33, 260: 34})


数值排序

  • sort_values

        df.sort_values(by = ['销售ID'], ascending = False)   by——指明排序的列名,默认为升序,ascending=False为降序

        df.sort_values(by=['col1', 'col2'], ascending=[True , False])    先按col1为升序,再按col2为降序排列

        %注意:na_position ——可以设置缺失值的显示位置,默认在最后,可以放到前面  eg:df.sort_values(by = ['销售ID'], na_position='first')


 

数值排名

  • rank

        主要有两个参数:ascending——升序/降序;    method——排序方式(average,first,min,max)

        eg:df['销售ID'].rank(method = 'min')


数值删除

  • drop

        删除列:df.drop(['销售ID','成交时间'],axis=1)          ——待删除列名,参数axis

                     df.drop(df.columns[ [4,5] ] ,axis = 1)            ——待删除列的位置,参数axis

                     df.drop(columns = ['销售ID', '成交时间'])      ——将列名以列表形式传给columns参数,不需要axis

 

        删除行:df.drop(['0a','1b'],axis=0)          ——待删除行名,参数axis

                     df.drop(df.index[ [0,1] ] ,axis = 0)            ——待删除行的位置,参数axis

                     df.drop(index= ['0a', '1b'])      ——将行名以列表形式传给index参数,不需要axis

 

        删除特定行:df[df['年龄']<40]         ——通过过滤, 将不需要的过滤出去


数值计数

  • value_counts

        df['销售ID'].value_counts()  ——绝对次数

        df['销售ID'].value_counts(normalize = True, sort = False)   ——normalize次数占比,sort=False不按计数值降序排列


 

唯一值获取

  • unique

        df['销售ID'].unique()


 

数值查找

  • isin

        df['年龄'].isin([31,21])

 


 

区间切分

  • cut  、 qcut

       pd.cut(df['年龄'], 3 ,bins = [0,3,6,10])      ——bins用来指明区分区间

       pd.qcut(df['年龄'], 3)      ——不需要指明区间,只需要设置切为几份


行列操作

  • 插入新的行/列

        行:没有插入新行的操作,一般将待插入行当做一个新的表,然后在纵向上拼接

        列:insert()  、  以索引的方式直接插入

                df.insert(2,"商品类别", ['cat01', 'cat02',……])   ——插入的位置,插入后为第2列

                df["商品类别"] = ['cat01', 'cat02',……]

  • 行列互换   转置  df.T
  • stack()——将列索引转换成行索引 (宽表变长表)
#先将不转换的列设置为索引
df.set_index(['company','name'])
#调用stack
df.set_index(['company','name']).stack()
#重置索引
df.set_index(['company','name']).stack().reset_index()
  • melt()——将列索引转换成行索引 (宽表变长表)
df.melt(id_vars=['company','name'], var_name = 'Year', value_name = 'Sale')
#id_vars转换时不变的列,var_name列索引转换为“行索引”以后对应的列名,value_name目前值所对应的列名
  • 长表变宽表,透视表功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值