【pandas】关于重复数据

 一、用groupby统计然后筛选重复值
使用groupby报错
报错类型:Wrong number of items passed 7, placement implies 
报错语句:df['num'] = df.groupby('name').count()
表格入下:计数之后生成了多列数据,大概类似这样

看了一下解释,是说生成了多列,我用一列来盛放这个数据是不对的;其实groupby之后已经生成了一个新的dateframe了,所以这样命名是错误的;

  改为df1 =df['num'] = df.groupby('name').count()就行了

import pandas as pd
df = pd.read_excel(r'D:\test\classify_all_data_simplified_version.xlsx')
df1 = df.groupby('corr_p_nm').count()
df1['num'] = pd.to_numeric(df1['corr_p_ind'])
condition = 'num>1'
df2 = df1.query(condition)

二、 获取重复行

这里很奇怪,为什么中文数据姓名的数据不完全重复也被筛选出来了,不理解

这里注意科学计数法,后面加一个\t 制表符才行

df. duplicated这个函数后续再继续学叭

import pandas as pd
df = pd.read_excel(r'D:\test\classify_all_data_simplified_version.xlsx')
# 直接获取重复行
df1 = df[df.duplicated(subset = 'corr_p_nm')]
df1['doc_nbr'] = df1['doc_nbr'].astype(str)+'\t'
df1.to_csv(r'D:\test\chongfushuju4.csv',encoding = 'gbk')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值