如何解决如何使用另一列的字典计数创建熊猫列?
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 举报,一经查实,本站将立刻删除。