(pandas)评论数据清洗

举报
Python新视野 发表于 2021/09/10 00:51:08 2021/09/10
【摘要】 (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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。