首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫组按返回NAN应用vs变换函数

熊猫组按返回NAN应用vs变换函数
EN

Stack Overflow用户
提问于 2017-12-14 09:34:43
回答 1查看 1.6K关注 0票数 1

我陷入了几种我无法解释的情况。首先是应用vs变换函数。到目前为止,我理解的是,对整个数据帧应用工作,而转换在每一行上工作,因此比应用要慢。这是我的数据

代码语言:javascript
运行
复制
size    id
40/6    2479
41/7    2479
42/8    2479
43/9    2479
44/10   2479
45/11   2479
46/12   2479

现在,当我应用df.groupby('id')['size'].apply(lambda col: ', '.join(col))时,它会返回

代码语言:javascript
运行
复制
0    NaN
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN
6    NaN

但是如果我改变了,df.groupby('id')['size'].transform(lambda col: ', '.join(col)),我得到

代码语言:javascript
运行
复制
0    40/6, 41/7, 42/8, 43/9, 44/10, 45/11, 46/12
1    40/6, 41/7, 42/8, 43/9, 44/10, 45/11, 46/12
2    40/6, 41/7, 42/8, 43/9, 44/10, 45/11, 46/12
3    40/6, 41/7, 42/8, 43/9, 44/10, 45/11, 46/12
4    40/6, 41/7, 42/8, 43/9, 44/10, 45/11, 46/12
5    40/6, 41/7, 42/8, 43/9, 44/10, 45/11, 46/12
6    40/6, 41/7, 42/8, 43/9, 44/10, 45/11, 46/12

我想让它与应用程序工作,因为我有300万行和速度是重要的因素。

第二期

当我的大小数据有空单元格时,即

代码语言:javascript
运行
复制
size    id
        2479
41/7    2479
        2479
43/9    2479
44/10   2479
45/11   2479
46/12   2479

使用apply或transform,我会得到这个错误,TypeError: sequence item 0: expected string, float found我理解它是由于null值造成的。我的问题是,我怎样才能克服这个问题?我需要可用值的联合,忽略null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-14 09:37:55

我认为您需要dropnaapplylambda应该省略:

代码语言:javascript
运行
复制
df=df.dropna(subset=['size']).groupby('id')['size'].apply(', '.join).reset_index(name='col')

或者非常相似:

代码语言:javascript
运行
复制
df = df['size'].dropna().groupby(df['id']).apply(', '.join).reset_index(name='col')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47810051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档