pandas melt将列融合 nunique cat fillna category quantile to_datetime groupby stack

45 篇文章 0 订阅
26 篇文章 0 订阅

Pandas 的melt的使用
nunique 统计有多少不同的元素
cat
cat.add_categories
fillna
category就是分类的onehot编码,注意cat方法
quantile()分位数
data_ser.quantile(0.75)
df处理时间
errors=‘coerce’ Pandas 遇到不能转换的数据就会赋值为 NaN(Not a Number)
在这里插入图片描述

dt.days 将时间变量如 365days 变成float
在这里插入图片描述

注意数字类型
groupby
在这里插入图片描述
groupby类型可以迭代
groupby咋用
groupby咋用
[groupby+agg 可以对groupby的结果同时应用多个函数
在这里插入图片描述
高阶用法:
对于b列 使用 mean 与 sum 结果分别 放到 col1_mean col1_sum 名称的列下面
在这里插入图片描述
把a相同的值 变成list存储起来 的两种写法

SeriesGroupBy的方法agg()参数:
aggregate(self, func_or_funcs, * args, ** kwargs)
func: function, string, dictionary, or list of string/functions
返回:aggregated的Series
](https://blog.csdn.net/u013317445/article/details/85268877)

stack 与unstack
stack 与unstack
数据分桶
数据分桶
数据标准化、归一化
标准化归一化
drop_duplicates
去重

pandas 想查看行

qtime.loc[0]
qtime[qtime['id']==1]
#先得到一个01的index,再得到指定行

得到最大的id
在这里插入图片描述
在这里插入图片描述

删除某一行某一列

Pandas:如何创建一个空DataFrame,并其中插入一行数据
在pandas中创建一个空DataFrame的方法,类似于创建了一个空字典(dict)。

例如:empty = pandas.DataFrame({“name”:"",“age”:"",“sex”:""})​
添加一行

想要向empty中插入一行数据,可以用同样的方法​。

(1)首先新建
test =pd.DataFrame(columns=[‘user_id’,‘item_id’, ‘time’])
value =pd.DataFrame(columns=[‘user_id’,‘item_id’, ‘time’])
(2)然后,开始插值。ignore_index=True,可以帮助忽略index,自动递增。

empty.append(new,ignore_index=True)​

(3)最重要的,赋值给empty.

​empty = empty.append(new,ignore_index=True)​

​否则,数据始终没有写入。

创建全0,全1df并且横竖合并

简单按行拼接:
x[‘0’] =ans_df[0]
x[‘1’] =ans_df[1]
新建列就行

按id合并
1
df = pd.merge(df1, df2, how=‘left’, on=‘user_id’)
用法很简单,说一下后两个参数就可以了,how=""参数表示以哪个表的key为准,上面的how=“left"表示以表df1为准,而key也就是on=”"的参数

how="left"就是说,保留user_id字段的全部信息,不增加也不减少,但是拼接的时候只把df2表中的与df1中user_id字段交集的部分合并上就可以了,如果df2中出现了某个user_id在df1中没有出现,就抛弃掉这个样本不作处理。

如果要进行多key合并:

1
df = pd.merge(df1, df2, how=‘left’, on=[‘user_id’,‘sku_id’])

长度不一样,一对多的关系填充进去
在这里插入图片描述
df交换两列,与初始化一个矩阵df
如图也能完成,更方便一些
在这里插入图片描述
去重

df直接list会得到col的list
正确方法

df获取indexdf获取index
怎样将groupby 完事了的对象变成df
groupby变成df

df更换列名称
使用pd.rename函数
a.rename(columns={‘A’:‘a’, ‘C’:‘c’}, inplace = True)
上面代码的意思是:
1,对a这个df进行操作,涉及的列为A和C两列
2:将涉及的列用字典括起来,’A’:’a’的意思是将原大A列的列名称修改为小a列
3,inplace指的是直接修改,不使用复制的方式,要是没有inplace这个参数,或者这个参数为False,需要改写成

填充缺失值
填充缺失值

pd.replace()
Train_data[‘notRepairedDamage’].replace(’-’, np.nan, inplace=True)

df变为字典的方法:
dict_user_feat = user_feat.set_index(‘user_id’).T.to_dict(‘list’)

把一个df中按user_id 的前50个值找出来,并排成一行

x['rank'] = x.groupby('user_id')['sim'].rank(method='first', ascending=False)
x = x[x['rank'] <= 50]
x = x.groupby('user_id')['item_id'].apply(lambda x: ','.join([str(i) for i in x])).str.split(',', expand=True).reset_index()

别问用就对了

在这里插入图片描述
变成这样
在这里插入图片描述
pd常用统计方法
在这里插入图片描述
Pandas 操作多个列进行运算,并生成新列的方法
在这里插入图片描述在这里插入图片描述
简单加减用eval
单行自操作用 map
多行操作用 apply
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
agg 到底在对什么进行操作:
在这里插入图片描述
在对每个分组的每一列进行操作
在这里插入图片描述

在这里插入图片描述
a = pd.df
b = a
b改变 a也会改变 b= a[:] 则不会改变

遍历df 的方法Pandas.DataFrame 的 iterrows()方法详解

pandas.DataFrame.sample 随机选取若干行
df随机抽取

把一列list变成多列

df只改变某几列的列名

df.rename(columns={'原列名''新列名'},inplace=True)

df 给很多列取名

emb_df.columns = ['u3_' + str(i) for i in range(len(emb_df.columns))]

滑动窗口rolling的用法

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值