大熊猫制作的数据杂乱无章的频率表

我有一个不同数字的 excel 档案,我用熊猫打开它。当我阅读然后打印 xslx 存档时,我有这样的东西:


    5    7    7    

0   6    16   5    

1   10   12   15   

2   1    5    6    

3   5    6    18   

.   .    .    .    

.   .    .    .    

n   .    .    n   

我所需要的只是根据它们的频率以不同的间隔分配它们。


我的代码是


import pandas as pd

excel_archive=pd.read_exceL("file name")

print(excel)


慕尼黑的夜晚无繁华
浏览 83回答 2
2回答

12345678_0001

你的问题不是很清楚,但如果你只需要计算出现的次数,你可以尝试这样的事情:#generate a dataframedf = 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 arraydf_flat=df.stack().reset_index(drop=True)#Count the number of occurencesdf_flat.groupby(df_flat).size()这是输入:   a  b  c0  1  2  31  4  5  42  7  8  93  1  5  24  7  9  9这是输出:1    22    23    14    25    27    28    19    3如果您想改为以一些预定义的间隔进行划分,您可以pd.cut与 一起使用groupby:#define intervalsintervals = pd.IntervalIndex.from_arrays([0,3,6],[3,6,9],closed='right')#cut and groupbydf_flat.groupby(pd.cut(df_flat,intervals)).size()结果将是:(0, 3]    5(3, 6]    4(6, 9]    6

潇潇雨雨

我认为 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     46     37     215    112    110    118    11     116    1dtype: int64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python