gpt4 book ai didi

python - pandas 'as_index' 功能无法按预期工作

转载 作者:行者123 更新时间:2023-11-28 22:43:09 28 4
gpt4 key购买 nike

这是我的原始数据框“调用”的最小可重现示例:

       phone_number    call_outcome   agent  call_number
0 83473306392 NOT INTERESTED orange 0
1 762850680150 CALL BACK LATER orange 1
2 476309275079 NOT INTERESTED orange 2
3 899921761538 CALL BACK LATER red 3
4 906739234066 CALL BACK LATER orange 4

正在编写这个 pandas 命令...

most_calls = calls.groupby('agent') \
.count().sort('call_number', ascending=False)

返回这个...

           phone_number  call_outcome  call_number
agent
orange 2234 2234 2234
red 1478 1478 1478
black 750 750 750
green 339 339 339
blue 199 199 199

这是正确的,但事实上我希望“代理”是一个变量而不是索引。

我曾多次使用 as_index=False 函数,并且熟悉指定 axis=1。然而,在这种情况下,我在哪里或如何合并这些参数并不重要,每个排列都会返回一个错误。

这些是我试过的一些例子和相应的错误:

most_calls = calls.groupby('agent', as_index=False) \
.count().sort('call_number', ascending=False)

ValueError: invalid literal for long() with base 10: 'black'

most_calls = calls.groupby('agent', as_index=False, axis=1) \
.count().sort('call_number', ascending=False)

ValueError: as_index=False only valid for axis=0

最佳答案

我相信,不管你做了什么groupby操作,你只需要调用reset_index说索引列应该只是一个常规列。

从您的数据模型开始:

import pandas as pd
calls = pd.DataFrame({
'agent': ['orange', 'red'],
'phone_number': [2234, 1478],
'call_outcome': [2234, 1478],
})
>> calls
agent call_outcome phone_number
0 orange 2234 2234
1 red 1478 1478

这是您使用 reset_index() 执行的操作:

>> calls.groupby('agent').count().sort('phone_number', ascending=False).reset_index()
agent call_outcome phone_number
0 orange 1 1
1 red 1 1

关于python - pandas 'as_index' 功能无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31050714/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com