使用 Pandas 从多维数据中分组
Posted
技术标签:
【中文标题】使用 Pandas 从多维数据中分组【英文标题】:Group by from multidimensional data using Pandas 【发布时间】:2021-12-02 02:30:27 【问题描述】:当我需要按“party_b”分组数据帧并计算“usage_type”为“SMSMT”或“MOC”的次数时,我遇到了一个问题。
数据集:
list = [
'_score': 1.220763,
'_source': 'response_id': '8801756091550_1633620760',
'usage_type': 'SMSMT',
'party_b': '8801810107222',
'party_a': '8801756091550',
'additionalProperties': ,
'event_time': '20211007093240',
'_score': 1.220763,
'_source': 'response_id': '8801756091550_1633625609',
'usage_type': 'MOC',
'party_b': '8801736636044',
'party_a': '8801756091550',
'partya_original': None,
'additionalProperties': ,
'event_time': '20211007105329',
'_score': 1.220763,
'_source': 'response_id': '8801756091550_1633625851',
'usage_type': 'MOC',
'party_b': '8801777701826',
'party_a': '8801756091550',
'partya_original': None,
'additionalProperties': ,
'event_time': '20211007105731',
'_score': 1.220763,
'_source': 'response_id': '8801756091550_1633626326',
'usage_type': 'SMSMO',
'party_b': '8801736636044',
'party_a': '8801756091550',
'partya_original': None,
'additionalProperties': ,
'event_time': '20211007110526']```
Desired output:
'party_b' -> SMSMT(how many times comes) ->MOC(how many times comes) -> SMSMO(how many times comes)
How should I achieve this?
【问题讨论】:
【参考方案1】:用途:
df = pd.DataFrame(data=data)
count = df['_source'].apply(pd.Series).groupby('usage_type').size()
输出:
usage_type
MOC 2
SMSMO 1
SMSMT 1
【讨论】:
先生,非常感谢...但是我需要party_b 的答案。例如,对于 '8801736636044' MOC 2 SMSMO 1 SMSMT 1 for '8801777701826' MOC 2 SMSMO 1 SMSMT 1 我的数据集非常大。所以我需要这种方式。 您可以尝试使用groupby(['party_b', 'usage_type'])
以上是关于使用 Pandas 从多维数据中分组的主要内容,如果未能解决你的问题,请参考以下文章
快速入门pandas进行数据挖掘数据分析[多维度排序数据筛选分组计算透视表]
Python / 使用 Pandas 从文本文件中读取和分组数据
从 pandas 数据帧到多维 numpy 数组以与 tensorflow 兼容