DataFrame:添加包含组大小的列
我有一个这样的数据表:
fsq digits digits_type
0 1 1 odd
1 2 1 odd
2 3 1 odd
3 11 2 even
4 22 2 even
5 101 3 odd
6 111 3 odd
我想在最后加一列,叫做 count,里面要放每个 digits 组里有多少个 fsq,也就是说:
fsq digits digits_type count
0 1 1 odd 3
1 2 1 odd 3
2 3 1 odd 3
3 11 2 even 2
4 22 2 even 2
5 101 3 odd 2
6 111 3 odd 2
比如说,有3行 fsq 的 digits 是1,2行 fsq 的 digits 是2,等等。
2 个回答
8
一般来说,尽量使用Pandas自带的方法,这样通常会更高效。
在这个例子中,你可以使用 'size'
,就像这样 df.groupby('digits')['fsq'].size()
:
df = pd.concat([df]*10000)
%timeit df.groupby('digits')['fsq'].transform('size') # 3.44 ms per loop
%timeit df.groupby('digits')['fsq'].transform(len) # 11.6 ms per loop
23
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,如果你想要在某个条件满足时才运行一段代码,你就可以使用“条件语句”。这就像是在说:“如果发生了某件事,那就做这个事情。”
条件语句通常是用“if”这个词来开始的。你可以想象成一个开关,只有在条件满足的时候,这个开关才会打开,代码才会执行。
此外,还有一些其他的条件语句,比如“else”,它的意思是“否则”。这就像是在说:“如果条件不满足,那就做另外一件事情。”
通过使用这些条件语句,你可以让程序根据不同的情况做出不同的反应,这样就能让你的程序更加灵活和智能。
总之,条件语句是编程中非常重要的工具,它帮助我们控制程序的执行流程,让程序能够根据实际情况做出相应的决策。
In [395]: df['count'] = df.groupby('digits')['fsq'].transform(len)
In [396]: df
Out[396]:
fsq digits digits_type count
0 1 1 odd 3
1 2 1 odd 3
2 3 1 odd 3
3 11 2 even 2
4 22 2 even 2
5 101 3 odd 2
6 111 3 odd 2
[7 rows x 4 columns]