pandas中关于DataFrame去掉重复行和NaN行

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weekdawn/article/details/81390654

1.去掉重复行

使用pandas自带的drop_duplicates方法:

norepeat_df = df.drop_duplicates(subset=['A_ID', 'B_ID'], keep='first')
#去掉UNIT_ID和KPI_ID列中重复的行,并保留重复出现的行中第一次出现的行

补充:
当keep=False时,就是去掉所有的重复行
当keep=‘first’时,就是保留第一次出现的重复行
当keep=’last’时就是保留最后一次出现的重复行。
(注意,这里的参数是字符串,要加引号!!!)

2.去掉NaN行

使用pandas自带的dropna()方法:

#删除表中某行全部为NaN的行
nonan_df = df.dropna(axis=0, how='all')

#删除表中某行含有任何NaN的行
nonan_df = df.dropna(axis=0, how='any')  

补充:
删除行的参数axis = 0
删除列的参数axis = 1

展开阅读全文

去掉重复行的问题?

09-17

就两张的查询,两张的关系是一对多的关系,这张表adrReport对应这一张表adrMedDetail是一对多的关系,现在我将所写的方法及查询的语句给大家看看:rn public ActionForward selectHitInfo(ActionMapping mapping, ActionForm form,rn HttpServletRequest request, HttpServletResponse response)rn throws Exception rn AdrReportForm adrReportForm = (AdrReportForm) form;rn DetachedCriteria dc = DetachedCriteria.forClass(AdrReport.class);rn Connection conn = DBConnect.getDBConnect(); //调用jdbc连接的方法rn String result = request.getParameter("result");rnrn String sql = "select a.*,b.CurrentName, b.MedicationName, b.dosage from " rn + "adrReport a, adrMedDetail b where " rn + "a.id = b.reportid and result like '%"+result+"%' "; // 取出表中的相关数据rn PreparedStatement psm = conn.prepareStatement(sql);rnrn ResultSet rs = psm.executeQuery(); rn List list = new ArrayList();rn while(rs.next()) rn HitDrugStat hit = new HitDrugStat();rn hit.setOrgName(rs.getString("orgname"));rn hit.setDegree(rs.getString("degree"));rn hit.setAdrName(rs.getString("adrname"));rn hit.setResult(rs.getString("result"));rn hit.setHappenDate(rs.getDate("happenDate"));rn hit.setSufferName(rs.getString("sufferName"));rn hit.setSignOfReporter(rs.getString("signOfReporter"));rn list.add(hit);rn rn rn request.setAttribute("listone", list);rnrn return mapping.findForward("hitdrugStat");rn rnrn因为是这一个条件 a.id = b.reportid , reportid是可以重复的,所以它查出来有重复的记录,它所代表的意思就是可以有多个药品(的reportid),而adrReport表中有一个不良反应名称的字段adrName,(比如:发烧、头痛),所以,可能是由多个药品所引起的不良反应症状(比如说:有可能是白加黑、感康等药品)。rn现在所要解决的问题就是:以上的SQL语句查出来的有重复的记录,怎么去掉重复的行?这个问题应该如何解决?先谢谢各位朋友了,帮帮忙! 论坛

没有更多推荐了,返回首页