gpt4 book ai didi

python - 使用石斑鱼列出唯一值

转载 作者:行者123 更新时间:2023-11-28 16:56:52 25 4
gpt4 key购买 nike

我有一个数据框,其中索引是日期时间,A 列和 B 列是对象。我需要每周查看 A 和 B 的唯一值。我设法获得了每周的唯一值计数(为此我使用了 pd.grouper 函数),但我很难获得每周的唯一值。

此代码为我提供了每周的唯一值计数

df_unique = pd.DataFrame(df.groupby(pd.Grouper(freq="W"))['A', 'B'].nunique())

但是,下面的代码并没有给我每周的唯一值本身

df_unique_list = pd.DataFrame(df.groupby(pd.Grouper(freq="W"))['A', 'B'].unique())

此代码给出以下错误消息

AttributeError: 'DataFrameGroupBy' object has no attribute 'unique'

最佳答案

将 lambda 函数与 Series.unique 结合使用并转换为列表:

np.random.seed(123)
rng = pd.date_range('2017-04-03', periods=20)
df = pd.DataFrame({'A': np.random.choice([1,2,3,4,5,6], size=20),
'B': np.random.choice([1,2,3,4,5,6,7,8], size=20)}, index=rng)
print (df)
A B
2017-04-03 6 1
2017-04-04 3 5
2017-04-05 5 2
2017-04-06 3 8
2017-04-07 2 4
2017-04-08 4 3
2017-04-09 3 5
2017-04-10 4 8
2017-04-11 2 3
2017-04-12 2 5
2017-04-13 1 8
2017-04-14 2 1
2017-04-15 2 6
2017-04-16 1 1
2017-04-17 1 8
2017-04-18 2 2
2017-04-19 4 4
2017-04-20 6 5
2017-04-21 5 5
2017-04-22 1 5

df_unique_list = df.groupby(pd.Grouper(freq="W"))['A', 'B'].agg(lambda x: list(x.unique()))
print (df_unique_list)
A B
2017-04-09 [6, 3, 5, 2, 4] [1, 5, 2, 8, 4, 3]
2017-04-16 [4, 2, 1] [8, 3, 5, 1, 6]
2017-04-23 [1, 2, 4, 6, 5] [8, 2, 4, 5]

关于python - 使用石斑鱼列出唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57553554/

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