删除在数据帧列中只出现一次的值

2024-04-25 23:06:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在x列中有一个具有不同值的数据帧。我想删除列中只出现一次的值。在

所以这个:

   x
1 10
2 30
3 30
4 40
5 40
6 50

应该变成这样:

^{pr2}$

我想知道有没有办法。在


Tags: 数据办法pr2
3条回答

您可以使用^{},然后使用^{}它:

In [9]:    
df = pd.DataFrame([10, 30, 30, 40, 40, 50], columns=['x'])
df = df.groupby('x').filter(lambda x: len(x) > 1)
df

Out[9]:
    x
1  30
2  30
3  40
4  40

您可以通过使用^{}^{}轻松获得:

In [1]: import pandas as pd

In [2]: df = pd.DataFrame([10, 30, 30, 40, 40, 50], columns=['x'])

In [3]: df = df[df.groupby('x').x.transform(len) > 1]

In [4]: df
Out[4]: 
    x
1  30
2  30
3  40
4  40

如何更明确地保留所有重复的值:

df = df.loc[df.duplicated(subset='x', keep=False), :]

相反,要只保留唯一值:

^{pr2}$

还有这个:

df = df.loc[~df.duplicated(subset='x'), :]

相当于:

df = df.drop_duplicates(subset='x')

相关问题 更多 >

    热门问题