我有一个由不同子组组成的熊猫数据框.
df = pd.DataFrame({
'id':[1, 2, 3, 4, 5, 6, 7, 8],
'group':['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'],
'value':[.01, .4, .2, .3, .11, .21, .4, .01]
})
Run Code Online (Sandbox Code Playgroud)
我想在其组中找到每个id的等级,比如说,值越低越好.在上面的示例中,在组A中,Id 1的排名为1,Id 2的排名为4.在组B中,Id 5的排名为2,Id 8的排名为1,因此上.
现在我通过以下方式评估排名:
按值排序.
df.sort('value', ascending = True, inplace=True)
创建一个ranker函数(它假设变量已经排序)
def ranker(df):
df['rank'] = np.arange(len(df)) + 1
return df
分别对每个组应用排名功能:
df = df.groupby(['group']).apply(ranker)
这个过程有效,但是当我在数百万行数据上运行它时,它真的很慢.有没有人对如何制作更快的排名功能有任何想法.
我有一个简单的XY数据点图.当我将鼠标悬停在它上面时,我希望我的Bokeh图形显示每个数据点的整数值.我接近得到我想要的东西但是当我将鼠标悬停在数据点上时,它显示一个浮点数然后更高,它使用科学记数法.有没有办法让悬停工具只返回X和Y的整数值而不使用科学记数法?
这是一些示例代码:
from bokeh.plotting import *
from bokeh.models import HoverTool
x = range(1,101)
y = [i*i for i in x]
TOOLS = "pan,wheel_zoom,box_zoom,reset,save,box_select, hover"
p = figure(x_axis_label = "Days",
y_axis_label = "Return",
tools=TOOLS)
p.circle(x, y)
#adjust what information you get when you hover over it
hover = p.select(dict(type=HoverTool))
hover.tooltips = [
("Days", "$x"),
("Return", "$y"),
]
show(VBox(p))
Run Code Online (Sandbox Code Playgroud) 我正在使用rpy2从python运行auto.arima()模型。我的预测输出的对象类型为rpy2.robjects.vectors.ListVector。
input1: type(forecast)
output: rpy2.robjects.vectors.ListVector
Run Code Online (Sandbox Code Playgroud)
问题:如何将该预测以rpy2.robjects.vectors.ListVector的形式转换回python?请注意,我看过其他帖子,但答案似乎太过具体了,无论如何,都无法从中找出答案。
请注意,此ListVector具有以下名称:
input: print(forecast.names)
output: [1] "method" "model" "level" "mean" "lower" "upper"
[7] "x" "xname" "fitted" "residuals"
Run Code Online (Sandbox Code Playgroud)