我想在一列中获得列表长度的统计数据,例如平均长度、最低、最高、标准偏差等
例如:
import pandas as pd
dfp = pd.DataFrame(
{'trial_num': [[1, 2, 3, 1, 2, 3], [3,4,6,7], [2,2]],
'subject': [[11, 2, 2, 2],[2,2,7],[4]]
}
)
dfp
输出:
trial_num subject
0 [1, 2, 3, 1, 2, 3] [11, 2, 2, 2]
1 [3, 4, 6, 7] [2, 2, 7]
2 [2, 2] [4]
因此,对于这个数据帧,我想要trial_num
和subject
列的统计数据
大概是
trial_num
Average: 4
High: 6
Low: 2
Stdev: 2
我试过的
我试过了
dfp.describe()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-90-8a598dabea30> in <module>()
----> 1 dfp.describe()
6 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/algorithms.py in _value_counts_arraylike(values, dropna)
748 # TODO: handle uint8
749 f = getattr(htable, "value_count_{dtype}".format(dtype=ndtype))
--> 750 keys, counts = f(values, dropna)
751
752 mask = isna(values)
pandas/_libs/hashtable_func_helper.pxi in pandas._libs.hashtable.value_count_object()
pandas/_libs/hashtable_func_helper.pxi in pandas._libs.hashtable.value_count_object()
TypeError: unhashable type: 'list'
我能想到的唯一解决方案是使用iterrows计算平均值、高值和低值,然后使用平均值,再次使用iterrows计算stdev
您可以使用
str.len
获取每行的列表长度。然后您可以使用.describe
:您可以使用series.explode或dataframe.explode查找统计信息
相关问题 更多 >
编程相关推荐