pandas如何删除表单中open行为超过1次的用户数据
如下图
# ####方式一:只要有重复的行,只保留第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种去除的方案,应该有你想要的吧。
有帮助的话,请点采纳该答案~
导入需要的包
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')