python - 如何将列表中的值分配给数据框中的一组值?
问题描述
我有一个包含 10 个值的数据,我想根据它们的百分比来分配它们。
我的数据:
stock value
s_001 -0.001932
s_002 0.004001
s_003 0.001323
s_004 -0.006785
s_005 0.004405
s_006 -0.002872
s_007 0.003101
s_008 0.001383
s_009 -0.004785
s_010 0.001405
百分位数:
breakpoints = [0, 20, 40, 60, 80]
我使用 df.sort_values 根据时间顺序对值进行排序:
stock value
s_001 -0.001932
s_006 -0.002872
s_009 -0.004785
s_004 -0.006785
s_003 0.001323
s_008 0.001383
s_010 0.001405
s_007 0.003101
s_002 0.004001
s_005 0.004405
排序后,如何将前两个值分配给第一个百分位数,然后将接下来的两个值分配给第二个百分位数,依此类推?
解决方案
您可以使用pandas.qcut
. 您将需要断点为 0 和 1 之间的数字:
breakpoints = [0. , 0.2, 0.4, 0.6, 0.8]
df['quantile'] = pd.qcut(df['value'],
breakpoints+[1],
labels=[int(i*100) for i in breakpoints]
)
注意。不需要为此对数据框进行排序
输出:
stock value quantile
0 s_001 -0.001932 20
1 s_002 0.004001 80
2 s_003 0.001323 40
3 s_004 -0.006785 0
4 s_005 0.004405 80
5 s_006 -0.002872 20
6 s_007 0.003101 60
7 s_008 0.001383 40
8 s_009 -0.004785 0
9 s_010 0.001405 60
推荐阅读
- python - 如何在 nn.LSTM pytorch 中获得 R2 分数
- swift - 无法从其他应用打开 tvOS 上的通用链接
- javascript - 将值传递给承诺中的另一个变量不起作用
- python - 如何在嵌套结构中存储层次结构信息
- google-apps-script - 截断输出时使用 UrlFetchApp 搜索字符串
- java - 在使用 appium 的 Android 移动应用程序上,如何获取我们需要滚动的 web-Elements 列表?
- c++ - 内存访问错误 - 异常 (C++)
- javascript - 如何在@nivo/条形图中显示 0 值,或者如果值为 0 来自 api,有什么方法可以显示无数据标签
- php - joomla, php, windows server - 无法实例化邮件功能
- c++ - 从一个文件 c++ 中读取不同的变量类型