(pandas)评论数据清洗
【摘要】
(pandas)评论数据清洗
1.空值处理2.数据去重3.定向剔除无用评论
1.空值处理
# 直接删除评论列中的空值(不包含空字符串)
df = df.dropna(subset=['...
1.空值处理
# 直接删除评论列中的空值(不包含空字符串)
df = df.dropna(subset=['comment'])
- 1
- 2
2.数据去重
去重时最好把多列作为参照,不能只根据评论列,防止删除不同人写出的相同评论。
# 根据用户id与comment两列作为参照,如存在用户id与comment同时相同,那么只保留最开始出现的。
df.drop_duplicates(subset=['user_id', 'comment'], keep='first', inplace=True)
# 重置索引
df.reset_index(drop=True, inplace=True)
- 1
- 2
- 3
- 4
3.定向剔除无用评论
1.剔除纯数字评论,先将其转为空字符串,之后对空字符串统一处理。
# 用空字符串('')替换纯数字('123')
df['comment'] = df['comment'].str.replace('^[0-9]*$', '')
- 1
- 2
2.剔除单一重复字符的评论
# 用空字符串('')替换('111','aaa','....')等
df['comment'] = df['comment'].str.replace(r'^(.)\1*$', '')
- 1
- 2
3.将评论中的时间转为空字符
# 用空字符串('')替换('2020/11/20 20:00:00')等
df['comment'] = df['comment'].str.replace(r'\d+/\d+/\d+ \d+:\d+:\d+', '')
- 1
- 2
4.对开头连续重复的部分进行压缩
效果:‘aaabdc’—>‘adbc’
‘很好好好好’—‘很好’
# 将开头连续重复的部分替换为空''
prefix_series = df_comment.str.replace(r'(.)\1+$', '')
# 将结尾连续重复的部分替换为空''
suffix_series = df_comment.str.replace(r'^(.)\1+', '')
for index in range(len(df_comment)):
# 对开头连续重复的只保留重复内容的一个字符(如'aaabdc'->'abdc')
if prefix_series[index] != df_comment[index]:
char = df_comment[index][-1]
df_comment[index] = prefix_series[index] + char
# 对结尾连续重复的只保留重复内容的一个字符(如'bdcaaa'->'bdca')
elif suffix_series[index] != df_comment[index]:
char = df_comment[index][0]
df_comment[index] = char + suffix_series[index]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
将空字符串转为’np.nan’,在使用dropna()来进行删除
# 将空字符串转为'np.nan',即NAN,用于下一步删除这些评论
df['comment'].replace(to_replace=r'^\s*$', value=np.nan, regex=True, inplace=True)
# 删除comment中的空值,并重置索引
df = df.dropna(subset=['comment'])
df.reset_index(drop=True, inplace=True)
- 1
- 2
- 3
- 4
- 5
哪怕对自己的一点小小的克制,也会使人变得强而有力
文章来源: blog.csdn.net,作者:Dream丶Killer,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_43965708/article/details/110884444
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)