假设我们有以下数据框:

userid    concessions    reason    contact    date
     1              0    aaa       call
     1              0    aaa       chat
     1              1    bbb       call       01-01-1990
     1              0    ccc       mail
     1              1    aaa       call       31-12-1992
     1              1    ccc       call       15-06-1994
     2              0    aaa       call
     2              0    aaa       chat
     3              1    bbb       chat       01-05-1990
     3              0    ccc       mail
     3              1    aaa       mail       10-02-1991
     3              1    ccc       call       21-08-1995

我想要将这个数据框转换为以下内容:

userid    concessions    aaa    bbb    ccc    call    chat    mail    date
     1              3      3      1      2       4       1       1    15-06-1994
     2              0      2      0      0       1       1       0
     3              3      1      1      2       1       1       2    21-08-1995

我怎样才能做到这一点呢?我试过用groupby()value_counts().它给了我正确的频率,但我不太确定如何转换数据帧本身.总的来说,我对Pandas 和Python 都是相当陌生的.

编辑: 我想我在发帖时的匆忙 idea 中还没有完全解释清楚.

所以,基本上,我想要计算useridconcessions的数量,并计算userid出现的reasoncontact类型的数量,然后 Select 最新的date.

推荐答案

让我们做一些聚合

df['date'] = pd.to_datetime(df['date'], dayfirst=True)
pd.concat([
    df.groupby('userid').agg({'concessions': 'sum', 'date': 'max'}),
    pd.crosstab(df['userid'], df['reason']),
    pd.crosstab(df['userid'], df['contact'])
], axis=1)

        concessions       date  aaa  bbb  ccc  call  chat  mail
userid                                                         
1                 3 1994-06-15    3    1    2     4     1     1
2                 0        NaT    2    0    0     1     1     0
3                 3 1995-08-21    1    1    2     1     1     2

Python相关问答推荐

Pandas 除以一列中出现的每个值

Django mysql图标不适用于小 case

大小为M的第N位_计数(或人口计数)的公式

Telethon加入私有频道

如何使用pytest来查看Python中是否存在class attribution属性?

基于索引值的Pandas DataFrame条件填充

mypy无法推断类型参数.List和Iterable的区别

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

在极中解析带有数字和SI前缀的字符串

如何排除prefecture_related中查询集为空的实例?

搜索按钮不工作,Python tkinter

Python避免mypy在相互引用中从另一个类重定义类时失败

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

Python pint将1/华氏度转换为1/摄氏度°°

Python 3试图访问在线程调用中实例化的类的对象

从一个df列提取单词,分配给另一个列

在Python中控制列表中的数据步长

在电影中向西北方向对齐""

ModuleNotFoundError:Python中没有名为google的模块''

极柱内丢失类型信息""