pandas 处理数据时快捷方法

Posted ~小疯子~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas 处理数据时快捷方法相关的知识,希望对你有一定的参考价值。

1. dt1 中有的数据,在dt2 中也有,取dt1中有,dt2中没有的数据

# 方法一:

user_push = pd.DataFrame(columns=dt1.columns)
for user, group in dt1.groupby(by=['user_id']):
    push_history = dt2[dt2.user_id == user]['item_id'].values
    group = group[~group.item_id.isin(push_history)]
    if not group.empty:
#         group = group.sample(1)
        group.loc[:, 'user_id'] = user
        user_push = pd.concat((user_push, group))
user_push

方法二:
slice_lable = (
    dt1[['user_id','item_id']].apply(tuple, axis=1).isin(dt2[['user_id','item_id']].apply(tuple, axis=1).to_list())
)
slice_lable
user_push = dt1[~slice_lable]
user_push

 返回结果:

2. 对dt1 中按照user_id 进行分组,按照cnt 进行排序,取用户的前n个

dt1.sort_values('cnt', ascending=False).groupby('user_id', as_index=False).first()

dt1.sort_values('cnt', ascending=False).groupby('user_id', as_index=False).head(4)

3. dataframe 进行分组,分组后将对应的数据进行按照一定的字符拼接

test_data = faq_dts[['user_id','user_content']]
test_data.head()

test_data[test_data['user_id']=='2022110904231319'].groupby(['user_id']).user_content.apply(lambda x:x.str.cat(sep=' ')).reset_index()

4. 把字符串的字典转化为字典类型

a = "'name' : 'jim', 'sex' : 'male', 'age': 18"
b = eval(a)


import json
c = json.loads(a)#c的类型也是字典类型的

以上是关于pandas 处理数据时快捷方法的主要内容,如果未能解决你的问题,请参考以下文章

python数据分析学习pandas一维工具Series讲解

pandas处理较大数据量级的方法 - chunk,hdf,pkl

pandas的简单使用

Pandas时间类型数据处理常用方法小结

Pandas时间类型数据处理常用方法小结

pandas 分类数据处理大全