gpt4 book ai didi

python - 如何从Python中的数据帧行中提取特定长度的范围?

转载 作者:行者123 更新时间:2023-12-02 08:15:16 24 4
gpt4 key购买 nike

这是我的数据框的前 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com