如何解决sequence item 0类型错误?groupby聚合报错咨询
问题原因分析及解决办法
这个错误的根源非常清晰:你使用'|'.join来聚合question_value列的内容,但该列是整数类型,而Python的str.join()方法只能对字符串序列进行拼接操作,遇到整数实例就会抛出TypeError。
你提到除了id列是object类型外,其余列都是整数类型,那question_value必然属于整数列。当groupby分组完成后执行agg('|'.join)时,Pandas会尝试将每个分组内的question_value值用|连接,但这些值是int类型而非str类型,完全不符合join方法的参数要求,因此触发了这个类型错误。
解决办法
有两种简单的修复方式:
- 方式一:在聚合时直接将整数转换为字符串
res = new.groupby(['id', 'survey_sequence', 'option_order'])['question_value'] .agg(lambda x: '|'.join(map(str, x)))
- 方式二:先将
question_value列整体转为字符串类型,再执行聚合
new['question_value'] = new['question_value'].astype(str) res = new.groupby(['id', 'survey_sequence', 'option_order'])['question_value'].agg('|'.join)
内容的提问来源于stack exchange,提问作者Tunahan A.
相关产品推荐
相关产品推荐

