Pandas:如何循环并删除列具有单个条目的行

2024-01-24

所以我有一个包含一定数量列的 pandas 数据框(下面是一个简单数据框的代码,但真正的数据框有超过 100 列):

X = pd.DataFrame([["A","Z"],["A","Z"],["B","Z"]],columns=["COL1","COL2"])

我想要做的是遍历每一列并删除仅发生单个实例的行。例如,在第 1 列中,我们只有一个“B”实例,因此我想在此基础上删除该行。

但是,我想遍历数据帧的每一列,并继续删除有此类实例的行。

当我指定名称时,以下代码适用:

X = X[X.groupby('COL1').COL1.transform(len) > 1]

但是,我不确定如何循环使用此代码。显然我可以手动输入每个列名称,但我想更正确地执行此操作。显然下面的方法是行不通的:

for column in X:
    X[X.groupby(column).column.transform(len)>1]

    COL1    COL2
0   A   Z
1   A   Z
2   B   Y

抱歉,如果有人问这个问题。我发现了很多类似的问题,但没有找到我们不手动指定列的问题。

先感谢您!如果您需要更多信息,请告诉我


您可以像这样使用重复:

X = pd.DataFrame([["A","Z"],["A","Z"],["B","Z"], ["A","Y"]],columns=["COL1","COL2"])

for column in X:
    X = X[X[column].duplicated(keep=False)]

Output:

  COL1 COL2
0    A    Z
1    A    Z
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas:如何循环并删除列具有单个条目的行 的相关文章

随机推荐