gpt4 book ai didi

python - dataset.drop_duplicates() 给出 ValueError : Wrong number of items passed, 但 Sample(frac=1) 没有

转载 作者:行者123 更新时间:2023-12-01 02:31:53 24 4
gpt4 key购买 nike

我有一个名为 work3 的数据集,我正在尝试根据“clean_name”列删除重复行。以下是有关work3的信息:

work3.info()

输出:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 3295520 entries, 0 to 3330947
Data columns (total 4 columns):
id int64
name object
address object
clean_name object
dtypes: int64(1), object(3)
memory usage: 276.7+ MB

当我尝试 drop_duplicates 时,它给我带来了一个 ValueError:

work3.drop_duplicates(['clean_name'])

输出:

ValueError: Wrong number of items passed 2117463, placement implies 3295520

现在,如果我尝试对其进行采样,但使 frac = 1,以获取整个数据集,然后检查信息:

test = work3.sample(frac=1)
test.info()

输出:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 3295520 entries, 419298 to 978722
Data columns (total 4 columns):
id int64
name object
address object
clean_name object
dtypes: int64(1), object(3)
memory usage: 125.7+ MB

..内存使用量大约是一半! 125.7+ MB 而不是 276.7+ MB。更重要的是,当我对其执行 drop_duplicates 函数时:

test.drop_duplicates(['clean_name'))

它给了我我想要的东西,没有任何错误!我在这里遗漏了什么吗?

2117463 rows × 4 columns

总而言之,这是我的问题:

  1. 为什么内存使用量减少了一半,即使是完全相同的数据集?

  2. 为什么示例 test.drop_duplicates() 工作时没有错误,但原始数据集 work 3 却给出 ValueError?

最佳答案

您可能有重复的索引。使用 .sample 时不会引发此错误,因为您的数据帧会重新索引。首先重新索引:

work3.reset_index(drop=True).drop_duplicates(['clean_name'])

关于python - dataset.drop_duplicates() 给出 ValueError : Wrong number of items passed, 但 Sample(frac=1) 没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46730457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com