使用pandas创建频率表

时间:2017-08-08 19:49:56

标签: python python-3.x pandas dictionary

我有一个pandas DataFrame,其中一些值是字典列表:

name, array_of_dict
=============
A, [{date: '..', "is_done": True},  {date: '..', "is_done": True},  {date: '..', "is_done": True}]
B, [{date: '..', "is_done": True},  {date: '..', "is_done": True},  {date: '..', "is_done": True}]
C, [{date: '..', "is_done": True},  {date: '..', "is_done": False}]
A, [{date: '..', "is_done": False}, {date: '..', "is_done": True}]
A, [{date: '..', "is_done": False}]

我正在尝试使用is_done = Trueis_done = False来获取行的频率。

我先试过

print(df.groupby('name').size())

给了我

A: 3
B: 1
C: 1

所以我虽然可以使用相同的函数来查找字典中变量的频率:

print(df.groupby('array_of_dict.is_done').size())

但它没有用。

是否可以使用字典数组中的变量进行分析?

1 个答案:

答案 0 :(得分:0)

你可以做到

In [1274]: pd.Series([x['is_done'] for x in df.array_of_dict for x in x]).value_counts()
Out[1274]:
True     8
False    3