【发布时间】:2021-01-31 11:47:52
【问题描述】:
模拟数据:
df = pd.DataFrame({
'id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'country': ['USA', 'USA', 'USA', 'USA', 'USA', 'Canada', 'Canada', 'Canada', 'USA', 'Canada']
})
假设我想为每个国家/地区抽取一个观察值:
df.groupby('country').sample(1)
我收到此错误:
AttributeError: Cannot access callable attribute 'sample' of 'DataFrameGroupBy' objects, try using the 'apply' method
我尝试重置索引,但没有解决问题。我也试过答案here,没用。我做错了什么?
编辑:这个问题有后续here。
【问题讨论】:
-
您只想要一个每个国家/地区有 1 行的数据框吗?随机行?第一行?具有最大 id 的行?
-
我想要每个国家的随机数 n 行。但是我的问题在这里很笼统:为什么函数 DataFrameGroupBy.sample 不能按预期工作?见文档:pandas.pydata.org/pandas-docs/stable/reference/api/…
-
你用的是什么熊猫版本?
-
@johnjohn
groupby.sample在 pandasversion 1.1.0.中引入,因此您可能需要升级 pandas。 -
没错,使用版本
'1.2.0',您的代码可以正常工作。