编辑: 我在np.nan
@ coldspeed,@ wen-ben,@
ALollz指出的字符串中犯的菜鸟错误。答案非常好,因此我不会删除此问题以保留这些答案。
原文:
我已经阅读了这个问题/答案groupby.first()和groupby.head(1)有什么区别?
该答案说明差异在于处理NaN
价值上。但是,当我打电话给groupby
时as_index=False
,他们俩都选择了NaN
。
此外,Pandas具有groupby.nth
与和类似的功能head
,并且first
有什么差异groupby.first(), groupby.nth(0), groupby.head(1)
有as_index=False
?
下面的例子:
In [448]: df
Out[448]:
A B
0 1 np.nan
1 1 4
2 1 14
3 2 8
4 2 19
5 2 12
In [449]: df.groupby('A', as_index=False).head(1)
Out[449]:
A B
0 1 np.nan
3 2 8
In [450]: df.groupby('A', as_index=False).first()
Out[450]:
A B
0 1 np.nan
1 2 8
In [451]: df.groupby('A', as_index=False).nth(0)
Out[451]:
A B
0 1 np.nan
3 2 8
我看到`firs()’重置了索引,而其他2则没有。除此之外,还有什么区别吗?
主要问题是您可能'np.nan'
存储了字符串,而不是真正的null值。以下是这三个null
值的不同处理方式:
import pandas as pd
df = pd.DataFrame({'A': [1,1,2,2,3,3], 'B': [None, '1', np.NaN, '2', 3, 4]})
first
这将返回每个组中的第一个非空值。奇怪的是它不会跳过None
,尽管可以通过kwarg来实现dropna=True
。因此,
您可能会返回原来属于不同行的列的值 :
df.groupby('A', as_index=False).first()
# A B
#0 1 None
#1 2 2
#2 3 3
df.groupby('A', as_index=False).first(dropna=True)
# A B
#0 1 1
#1 2 2
#2 3 3
head(n)
返回组中的前n行。 值保持在行内 。如果您给它的n
行数超过了行数,它将返回该组中的所有行而不会抱怨:
df.groupby('A', as_index=False).head(1)
# A B
#0 1 None
#2 2 NaN
#4 3 3
df.groupby('A', as_index=False).head(200)
# A B
#0 1 None
#1 1 1
#2 2 NaN
#3 2 2
#4 3 3
#5 3 4
nth
:这占用了nth
行,因此 值 再次 保持在row内
。.nth(0)
与相同.head(1)
,但用途不同。例如,如果您需要第0行和第2行,则很难做到.head()
,而使用则容易.nth([0,2])
。同样,它.head(10)
比容易编写.nth(list(range(10))))
。
df.groupby('A', as_index=False).nth(0)
# A B
#0 1 None
#2 2 NaN
#4 3 3
nth
还支持删除具有任何空值的行,因此您可以使用它返回不包含任何空值的第一行,这与 .head()
df.groupby('A', as_index=False).nth(0, dropna='any')
# A B
#A
#1 1 1
#2 2 2
#3 3 3
问题内容: 在JPA中,我什么时候使用属性和注释感到困惑。有什么区别? 问题答案: 是用于生成架构的指令。在类中生成的数据库列将在实际数据库中标记为不可为空。 是运行时指令。它所做的主要功能是与延迟加载有关。您不能延迟加载非集合映射的实体,除非您记得设置了optional = false(因为Hibernate不知道那里应该有一个代理还是一个null,除非您告诉它null是不可能的,否则它可以生成
问题内容: 我只是想知道这两个执行的功能有什么不同? 数据: as_index = False: reset_index(): 他们两个都给出完全相同的输出。 谁能告诉我有什么区别,还可以举例说明吗? 问题答案: 使用时,表示您不想将列ID设置为索引(duh!)。当两个实现产生相同的结果时,请使用,因为这样可以节省一些键入时间和不必要的pandas操作;) 但是,有时您想对组应用更复杂的操作。在这
问题内容: 抱歉,我是Java新手,所以这个问题可能不清楚。 最近,我一直在尝试将try和catch语句包含在while循环中,因为我想确保从程序的其余部分中获取输入。 我遇到了一个问题,在while条件(例如,while(!done))中,在变量前面使用感叹号(!),而不是使用= false(例如,while(done = false))会更改程序的方式运行。 前者(!done)导致try和ex
问题内容: in Pandas中in的功能到底是什么? 问题答案: 当你什么都不懂的时候是你的朋友。它清除了很多次疑问。 看一看: 输出: 当您使用的键将成为新数据框中的索引时。 将列设置为索引时,将获得以下好处: 速度。 当您基于索引列过滤值时,例如 ,因为索引列的散列会更快。不必遍历整个列即可找到。它将只计算的哈希值,并在1 go内找到它。 缓解。 当您可以使用较短和较快的语法,而不是较长和较
问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。
本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块