我有这样一个熊猫数据框:
source text_column
0 a abcdefghi
1 a abcde
2 b qwertyiop
3 c plmnkoijb
4 a NaN
5 c abcde
6 b qwertyiop
7 b qazxswedcdcvfr
我想得到分组source
列后text_column
的长度,如下所示:
source something
a 9
b 14
c 9
以下是我到目前为止尝试过的方法,所有这些方法都会产生错误:
>>> # first creating the group by object
>>> text_group = mydf.groupby(by=['source'])
>>> # now try to get the max length of "text_column" by each "source"
>>> text_group['text_column'].map(len).max()
>>> text_group['text_column'].len().max()
>>> text_group['text_column'].str.len().max()
如何在另一列按分组的情况下获得text_column
的最大长度
为了避免产生新的问题,我如何获得第二大长度和相应的值(第text_column
中的第一和第二大句子)
只需使用
assign
和str.len
首先获取长度:第一个想法是将lambda函数与^{} 和
max
一起使用:或者您可以先使用^{} ,然后聚合
max
:如果需要整数,请首先使用^{} :
编辑:对于第一个和第二个顶级值,使用^{} 和^{} :
具有^{} 的替代解决方案,明显较慢:
top1、top2新列的最后解决方案:
对我来说,最简单的解决方案是这样的(经过测试)-您实际上不需要groupby:
关于你的第二个问题,我认为groupby很适合你:
相关问题 更多 >
编程相关推荐