删除Python Pandas does的重复方法

2024-04-26 11:05:30 发布

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

试图删除“new”列上基于唯一值的重复项,我甚至尝试了两种方法,但是输出数据框形状建议前后具有相同的df形状,意味着删除重复失败。在

import pandas
import numpy as np
import random

df = pandas.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))

df['new'] = [1, 1, 3, 4, 5, 1, 7, 8, 1, 10]
df['new2'] = [1, 1, 2, 4, 5, 3, 7, 8, 9, 5]

print df.shape

df.drop_duplicates('new', take_last=False)
df.groupby('new').max()

print df.shape

# output
(10, 6)
(10, 6)
[Finished in 1.0s]

Tags: 数据方法importnumpydataframepandasdfnew
1条回答
网友
1楼 · 发布于 2024-04-26 11:05:30

您需要指定^{}的结果,默认情况下是inplace=False,这样它就会返回修改后的df的一个副本,因为您不传递paraminplace=True原始df是未修改的:

In [106]:

df = df.drop_duplicates('new', take_last=False)
df.groupby('new').max()
Out[106]:
            A         B         C         D  new2
new                                              
1   -1.698741 -0.550839 -0.073692  0.618410     1
3    0.519596  1.686003  1.395585  1.298783     2
4    1.557550  1.249577  0.214546 -0.077569     4
5   -0.183454 -0.789351 -0.374092 -1.824240     5
7   -1.176468  0.546904  0.666383 -0.315945     7
8   -1.224640 -0.650131 -0.394125  0.765916     8
10  -1.045131  0.726485 -0.194906 -0.558927     5

如果您通过了inplace=True,则可以:

^{pr2}$

相关问题 更多 >