groupby.first()和groupby.head(1)有什么区别?

4

两者都返回每个组的第一行DataFrame。当阅读API参考时,它说首先“计算值的第一组”,但是当将两个输出并排放置时,我没有看到主要差异。

我有遗漏什么吗?

df = pd.DataFrame({'id' : [1,1,1,2,2,3,3,3,3,4,4,5,6,6,6,7,7],
                    'value'  : ["first","second","second","first",
                                "second","first","third","fourth",
                                "fifth","second","fifth","first",
                                "first","second","third","fourth","fifth"]})

First API

1个回答

7
主要区别在于first()会跳过第一个非空值,而head(1)不会。如果我在你的示例中放入np.nan:
df = pd.DataFrame({'id' : [1,1,1,2,2,3,3,3,3,4,4,5,6,6,6,7,7],
                   'value'  : [np.nan,"second","second","first",
                               "second","first","third","fourth",
                               "fifth","second","fifth","first",
                               "first","second","third","fourth","fifth"]})

那么,接下来我们有:
>>> df.groupby('id').head(1)
    id   value
0    1     NaN      # NaN is included
3    2   first
5    3   first
9    4  second
11   5   first
12   6   first
15   7  fourth

>>> df.groupby('id').first()
     value
id        
1   second          # NaN is skipped
2    first
3    first
4   second
5    first
6    first
7   fourth

(另外,正如您所看到的,head() 会重置索引。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接