为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑的夜晚无繁华 2022-06-28 09:57:07
我有一个不同数字的 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 pdexcel_archive=pd.read_exceL("file name")print(excel)
查看完整描述

2 回答

?
12345678_0001

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


查看完整回答
反对 回复 2022-06-28
?
潇潇雨雨

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


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信