gpt4 book ai didi

python - 减少数据框行和查找

转载 作者:行者123 更新时间:2023-12-01 09:23:46 24 4
gpt4 key购买 nike

需要以下方面的帮助。假设我们有一个数据框:

dictionary ={'Category':['a','a','a','a','a','a','a','a','b','b','b','b','b','b','b'], 
'val1':[11,13,14,17,18,21,22,25,2,8,9,13,15,16,19],
'val2':[1,0,5,1,4,3,5,9,4,1,5,2,4,0,3]}

df=pd.DataFrame(dictionary)

“val1”始终在“category”中的相同值内递增,即类别的第一行和最后一行是该类别的最小值和最大值。每个类别的行太多,我想创建一个新的数据框,其中包含每个类别的 minmax 值,并包含等间距的例如每个类别 5 行(包括最小值和最大值)。我认为 numpy 的 linspace 应该用于为每个类别创建一个值数组(例如 linspace(min, max, 5)),然后类似于 excel 的“查找”功能应该用于从 df 获取最接近的“val1”值。或者也许还有其他更好的方法......

非常感谢您的帮助。

最佳答案

这是您需要的吗?使用groupbyreindex

l=[]
for _, x in df.groupby('Category'):
x.index=x['val1']
y=x.reindex(np.linspace(x['val1'].min(), x['val1'].max(), 5),method='nearest')
l.append(y)
pd.concat(l)
Out[330]:
Category val1 val2
val1
11.00 a 11 1
14.50 a 14 5
18.00 a 18 4
21.50 a 22 5
25.00 a 25 9
2.00 b 2 4
6.25 b 8 1
10.50 b 9 5
14.75 b 15 4
19.00 b 19 3

关于python - 减少数据框行和查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50614931/

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