2 回答
TA贡献1802条经验 获得超5个赞
你的问题不是很清楚,但如果你只需要计算出现的次数,你可以尝试这样的事情:
#generate a dataframe
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 4], [7, 8, 9], [1, 5, 2], [7, 9, 9]]),columns=['a', 'b', 'c'])
#Flatten the array
df_flat=df.stack().reset_index(drop=True)
#Count the number of occurences
df_flat.groupby(df_flat).size()
这是输入:
a b c
0 1 2 3
1 4 5 4
2 7 8 9
3 1 5 2
4 7 9 9
这是输出:
1 2
2 2
3 1
4 2
5 2
7 2
8 1
9 3
如果您想改为以一些预定义的间隔进行划分,您可以pd.cut与 一起使用groupby:
#define intervals
intervals = pd.IntervalIndex.from_arrays([0,3,6],[3,6,9],closed='right')
#cut and groupby
df_flat.groupby(pd.cut(df_flat,intervals)).size()
结果将是:
(0, 3] 5
(3, 6] 4
(6, 9] 6
TA贡献1833条经验 获得超4个赞
我认为 excel 文件没有标题,所以先添加header=None到read_excel然后使用DataFrame.stackwith Series.value_counts:
excel_archive=pd.read_exceL("file name", header=None)
s = excel_archive.stack().value_counts()
print (s)
5 4
6 3
7 2
15 1
12 1
10 1
18 1
1 1
16 1
dtype: int64
添加回答
举报