gpt4 book ai didi

python - 访问 Pandas 中的组

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:52 25 4
gpt4 key购买 nike

假设我有一些随机数据框:

> df
A B C D
0 foo one 1.344866 -0.602697
1 bar one 0.669491 -0.264758
2 foo two 0.830100 0.381644
3 bar three -0.756694 -0.382337
4 foo two -0.267778 0.963123
5 bar two 1.275177 -0.667924
6 foo one 0.240863 0.321022
7 foo three -1.431863 -0.333058

我根据以下方式对其进行分区:

groups =df.groupby(['A', 'B'])

下面两种方法有什么区别?它们以不同的格式返回群组信息。

使用键值对:

for key, value in groups:
print key
print value

使用 nth():

for group_ix in xrange(groups.ngroups)
item = groups.nth(group_ix)

?

最佳答案

这两个东西是完全不同的,nth 取组中的第 n 个值(如果组少于 n 个项目,目前使用 NaN):

In [11]: groups.nth(n=0)  # the 0th items in each group
Out[11]:
C D
A B
bar one 0.669491 -0.264758
three -0.756694 -0.382337
two 1.275177 -0.667924
foo one 1.344866 -0.602697
three -1.431863 -0.333058
two 0.830100 0.381644

In [12]: groups.nth(n=1) # the 1st items in each group, NaNs if <=1
Out[12]:
C D
A B
bar one NaN NaN
three NaN NaN
two NaN NaN
foo one 0.240863 0.321022
three NaN NaN
two -0.267778 0.963123

注意:atm 这并没有特别详细的记录,有一个 Unresolved 问题可以更改它并使用 Series groupby 调整 nth 的行为(成为 cumcount() == n)。

当您遍历组时,您将获得键(mi)和值(每个组的 subDataFrame):

In [21]: for k, v in groups: print k  # the v are subDataFrames for each item
('bar', 'one')
('bar', 'three')
('bar', 'two')
('foo', 'one')
('foo', 'three')
('foo', 'two')

In [22]: groups.get_group(('foo' , 'one')) # example v
Out[22]:
A B C D
0 foo one 1.344866 -0.602697
6 foo one 0.240863 0.321022

关于python - 访问 Pandas 中的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21977965/

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