首页 > 解决方案 > 我正在处理一个大型数据集。数据中的每个值都需要清理。我如何在熊猫中使用过滤器或查询功能来做到这一点

问题描述

我的数据集如下所示:

BKG_PRODTN_DT POL_EXP_INFO BKD_MAJ_LINE_CD POL_SYM_CD AMT bkd_amt
20210319,20210319 100,100 A001,A001 NVA,NVA 14.26,14.26 10,13.97
20210319,20210319 101,101 A111,A112 NVA,NVA 63,64.17 62.89,62.89

我期待一个像下面这样的数据框。

BKG_PRODTN_DT POL_EXP_INFO BKD_MAJ_LINE_CD POL_SYM_CD AMT bkd_amt
20210319 100 A001 NVA 14.26 10,13.97
20210319 101 A111,A112 NVA 63,64.17 62.89

数据框中的每个值都需要进行转换。数据帧的每个单元格中有两个值,由分隔符(,)分隔。我想检查一个单元格中的两个值是否相等。如果它们相同/相等,我想删除第二个值,否则(如果由分隔符分隔的每个单元格中的值不同),我想将单元格中的实际值保留原样。我可以使用 pandas 中的查询功能来做到这一点吗?

标签: pythonpython-3.xpandasdataframenumpy

解决方案


尝试:

print(df.replace(r"^(.*),\1$", r"\1", regex=True))

印刷:

  BKG_PRODTN_DT POL_EXP_INFO BKD_MAJ_LINE_CD POL_SYM_CD       AMT   bkd_amt
0      20210319          100            A001        NVA     14.26  10,13.97
1      20210319          101       A111,A112        NVA  63,64.17     62.89

推荐阅读