小编Luc*_*tto的帖子

Seaborn lineplot 高 cpu;与 matplotlib 相比非常慢

我有以下数据框。

In [12]: dfFinal
Out[12]: 
           module                                            vectime                                           vecvalue
1906  client1.tcp  [1.1007512, 1.1015024, 1.1022536, 1.1030048, 1...  [0.0007512, 0.0007512, 0.0007512, 0.0007512, 0...
1912  client2.tcp  [1.10079784, 1.10159568, 1.10239352, 1.1031913...  [0.00079784, 0.00079784, 0.00079784, 0.0007978...
1918  client3.tcp  [1.10084448, 1.10168896, 1.10258008, 1.1036111...  [0.00084448, 0.00084448, 0.00089112, 0.0010310...
Run Code Online (Sandbox Code Playgroud)

我想为每个模块绘制 timeSeries vecvaluevs。vectime

结果如下: 在此处输入图片说明

为此,我可以执行以下操作:

1) Matplotlib

start = datetime.datetime.now()

for row in dfFinal.itertuples():
    t = row.vectime
    x = row.vecvalue
    x = runningAvg(x)
    plot(t,x)

total = (datetime.datetime.now() - start).total_seconds()
print("Total time: ",total)
Run Code Online (Sandbox Code Playgroud)

这样做需要0.07005几秒钟才能完成。

2) 海生

start …
Run Code Online (Sandbox Code Playgroud)

python performance matplotlib pandas seaborn

15
推荐指数
1
解决办法
5452
查看次数

从 LibreCalc 中调用 python 函数

我在名为 calculadora.py 的文件中有以下代码

def calcpy(numA,numB):
    return numA+numB
Run Code Online (Sandbox Code Playgroud)

从 LibreCalc 中调用函数 calcpy() 的正确方法是什么?我想放入单元格A1=calcpy(B1,C1)并获得结果......

我已经将 python 脚本放在 和 中/usr/lib/libreoffice/share/Scripts/python/,/home/lucas/.config/libreoffice/4/user/Scripts/python我也可以在菜单 Tools->Macro->Organize Macro->Python 下看到它

在此输入图像描述

...但我真的不知道如何调用该函数。

我读过一些建议将函数包装在 Basic 中的文章,例如:

function calcpy(a as double, b as double) as double
    script = GetScript("calcpy")
    calcpy = script.invoke(Array(a, b), Array(), Array())
end function
Run Code Online (Sandbox Code Playgroud)

...但是每当我使用 =calcpy(5,4) 时,我都会收到一条错误消息:“基本运行时错误。子过程或函数过程未定义。”

这可能吗?使用 Basic 是正确的方法吗?有没有更直接(优雅?)的方法?

谢谢,

卢卡斯

python add-in function user-defined-functions libreoffice-calc

7
推荐指数
1
解决办法
2904
查看次数

无法重塑(枢轴)熊猫 DF

所以我有这个 DF:

In [130]: dfAbr
Out[130]: 
           ip ospfArea router_name
0     1.1.1.1  0.0.0.2   Router1-1
1     1.1.1.2  0.0.0.2   Router1-2
140   5.5.5.1  0.0.0.5   Router5-1
141   5.5.5.2  0.0.0.5   Router5-2
Run Code Online (Sandbox Code Playgroud)

我想将其重塑为 2 行数据框,例如:

在此处输入图片说明

我一直在玩stack/unstack和pivot 功能,但不能走那么远。

例如,dfAbr1 = pd.DataFrame(dfAbr.set_index('ospfArea').stack()).reset_index()重命名列名会产生以下结果:

In [151]: dfAbr1
Out[151]: 
  ospfArea       level1     level2
0  0.0.0.2           ip    1.1.1.1
1  0.0.0.2  router_name  Router1-1
2  0.0.0.2           ip    1.1.1.2
3  0.0.0.2  router_name  Router1-2
4  0.0.0.5           ip    5.5.5.1
5  0.0.0.5  router_name  Router5-1
6  0.0.0.5           ip    5.5.5.2
7  0.0.0.5  router_name  Router5-2
Run Code Online (Sandbox Code Playgroud)

从那里开始,我想要pivot它,就像这样: …

python pivot reshape pandas

2
推荐指数
1
解决办法
108
查看次数