作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的数据框的前 10 列:
import pandas as pd
df = pd.DataFrame({
'0': [373.60],
'1': [442.83],
'2': [259.21],
'3': [293.05],
'4': [332.79],
'5': [360.03],
'6': [676.55],
'7': [481.67],
'8': [486.59],
'9': [561.65],
'10': [491.75]})
依此类推,实际上我的df包含100000列。最小值为 109.59,最大值为 1703.35。
我想将 df 分割为长度为 3.98 的特定范围,然后定义一个包含最大数量值的 ragne。我的意思是,范围必须是这样的:
# converting df to array
df_array = np.array(df)
# defining ranges like:
range_length=3.98
range_1 = df_array.min() + range_length
range_2 = range_1 + range_lenght
...
range_n = df_array.max() - range_n-1
然后我看到一些 range_150 包含大约 1200 个值,这是我需要的最频繁的分布范围。
然后我需要在我的 df 中定义该范围内每个值的索引..
真的不知道如何做到这一点。看起来需要创建几个函数。有人可以帮忙吗?
最佳答案
这样您就可以获得每个范围的条目数:
ranges = np.arange(df.T.min()[0] - 5, df.T.max()[0] + 5, 3.98) #added +5 to max and -5 to min to surely include them in the range
df_count = df.T.groupby(pd.cut(df.T[0], ranges)).count()
df_count
0
0
(254.21, 258.19] 0
(258.19, 262.17] 1
(262.17, 266.15] 0
(266.15, 270.13] 0
(270.13, 274.11] 0
..
(660.17, 664.15] 0
(664.15, 668.13] 0
(668.13, 672.11] 0
(672.11, 676.09] 0
(676.09, 680.07] 1
[107 rows x 1 columns]
这样你就可以获得点击次数最多的索引(范围):
df_count.idxmax()
0 (258.19, 262.17]
dtype: object
您可以像这样获取此范围内的条目:
df.T[df.T[0].between(258.19, 262.17)]
0
2 259.21
也许有帮助。
关于python - 如何从Python中的数据帧行中提取特定长度的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59825370/
我是一名优秀的程序员,十分优秀!