这是我称为“调用”的原始数据框的最小可重现示例:
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
Run Code Online (Sandbox Code Playgroud)
写这个熊猫命令...
most_calls = calls.groupby('agent') \
.count().sort('call_number', ascending=False)
Run Code Online (Sandbox Code Playgroud)
返回这个...
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
Run Code Online (Sandbox Code Playgroud)
这是正确的,但事实上我希望“代理”是一个变量而不是索引。
我曾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'
Run Code Online (Sandbox Code Playgroud)
和
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
Run Code Online (Sandbox Code Playgroud)
我相信,不管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
Run Code Online (Sandbox Code Playgroud)
这是您附加的操作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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3656 次 |
| 最近记录: |