1.pandas 如何实现转置
import pandas as pd
x = [[1,2,3],[4,5,6],[7,8,9]]
data = pd.DataFrame(x,index=['user1','user2','user3'],columns=['a','b','c'])
将data进行转置
data.T
等价于data.unstack(0).unsatck()
2.如何表示出每个用户在每列中的占比,相当于对每行求和,跨列求出每行的总数,再求比例
data_sum1 = data.sum(axis=1)#跨列求和,每一行会有一个总计
接下来看占比
data_rate1 = data.div(data_sum1,axis='rows')
#等价于data_rate1 = data.div(data_sum1,axis=0)
很明显,user1在a中占比16.7%,在b中占比33.3%,在c中占比50%,比例和为1
3.反过来,看每个产品在用户中的占比分布,跨行每列求和
data_sum0 = data.sum(axis=0)
然后看每个产品在各个用户中的占比
data_rate0 = data.div(data_sum0,axis=1)
#等价于data_rate0 = data.div(data_sum0,axis = 'columns')
很明显,a列的和为1
4.原始数据data跨列每行之和
data['col_sum']=data.apply(lambda x:x.sum(),axis=1)
5.原始数据每列跨行求和
6.删除某列或某几列
data.drop(data.columns[[-2,-1]],axis = 1,inplace = True) #删除倒数两列,这种方法适合删除连续的多列 [-2,-1]表示列的序号,可以依据实际需求来设置
data.drop(['列名1','列名2'],axis=1)#删除指定的列名,这种方式适用于明确要删除的某列
#等价于data.drop(columns = ['列名1','列名2'])
7.删除某行或某几行
data.drop(index=['行名1','行名2'],axis=0) # 删除特定的行
data.drop(index=[1,10]) #删除多行,注意,data可能行标签没有0、1、2...,可以实现对data重新设置标签再多行删除
本节内容最近处理数据碰到的一些pandas的使用,加深自己对pandas的熟练运用,加油!希望对刚上手pandas的同学有用,喜欢请点赞哦!