pandas如何删除表单中open行为超过1次的用户数据(语言-python)

pandas如何删除表单中open行为超过1次的用户数据
如下图

img

# ####方式一:只要有重复的行,只保留第1次出现的值
import pandas as pd
df = pd.read_csv('t3.csv', encoding='utf-8')
new = df.drop_duplicates(['用户','行为'], keep='first')
print(new)

# ####方式二:只要open出现过两次以上,该用户的open信息保留1次
import pandas as pd

df = pd.read_csv('t3.csv', encoding='utf-8')
##获取到不包含open的数据
other_action = df[~df['行为'].str.contains('/open', na=False)]
##获取到包含open的数据,并去重
open_action = df[df['行为'].str.contains('/open', na=False)]
open_action.drop_duplicates(['用户', '行为'], keep='first', inplace=True)
##合并
new = pd.concat([other_action, open_action], ignore_index=True).sort_values('用户')
print(new)
# ####方式三:只要open出现过两次以上,该用户的信息全部删除
import pandas as pd

df = pd.read_csv('t3.csv', encoding='utf-8')
condition = df[df['行为'].str.contains('/open', na=False)].groupby('用户').count().gt(1)
user_list = condition[condition['行为'] == False].index.values
new = df[df['用户'].isin(user_list)].reset_index(drop=True)
print(new)

3种去除的方案,应该有你想要的吧。

有帮助的话,请点采纳该答案~

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7542885
  • 这篇博客也不错, 你可以看下python pandas中的算术/计算和数据对齐
  • 除此之外, 这篇博客: 数据的描述性统计与python实现中的 使用pandas导入数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

  • 导入需要的包

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    from scipy.stats import mode
    import seaborn as sns
    import os
    

    更改工作目录及读取数据

    os.chdir(r'C:\Users\Mr.M\notebook')
    snd = pd.read_excel("作业数据.xls")
    

    数据可视化,数据为259人的身高数据

    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    snd.height.value_counts().sort_index().plot(kind = 'bar')
    

    身高分布直方图

  • 您还可以看一下 机工社华章IT老师的Pandas数据清洗与建模课程中的 用Python进行Pandas数据清理和建模:概述小节, 巩固相关知识点