微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用另一列的字典计数创建熊猫列?

如何解决如何使用另一列的字典计数创建熊猫列?

我有一个示例数据:

date        product campaign_type             total_monthly_sale
2019-01-01. Dell      [call,email,call].       5
2019-01-01. Apple     [fax,fax,visit,visit]   4
2019-02-01. Dell      [call,call]          6
2019-02-01. Apple     [email,visit]      7

我想创建一个名为“campaign_dict”的新列,它给出了来自 campaign_type 列的值的计数。

示例输出如下:

date        product campaign_type             total_monthly_sale. campaign_dict
2019-01-01. Dell      [call,call].       5.               {'call':2,'email':1} 
2019-01-01. Apple.    [fax,visit].  4.               {'fax':2,'visit':2}
2019-02-01. Dell.     [call,call]          6.               {'call':2,'fax':1}
2019-02-01. Apple.    [email,visit].     7                {'email':2,'visit':1}

解决方法

尝试这样的事情

from collections import Counter

df["campaign_dict"] = df["campaign_type"].apply(Counter)
,

您需要的是一个 collections.Counter

import pandas as pd
from collections import Counter

df: pd.DataFrame = pd.DataFrame([
    [["call","email","call"],5],[["fax","fax","visit","visit"],4],[["call",6],[["email",7]
],columns=['campaign_type','total_monthly_sale'])

df['campaign_dict'] = df['campaign_type'].apply(Counter)
print(df) 

              campaign_type  total_monthly_sale             campaign_dict
0       [call,email,call]                   5   {'call': 2,'email': 1}
1  [fax,fax,visit,visit]                   4    {'fax': 2,'visit': 2}
2         [call,call]                   6     {'call': 2,'fax': 1}
3     [email,visit]                   7  {'email': 2,'visit': 1}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?