小编Mar*_*_CH的帖子

按条件分组并创建三个新列 [低、命中、高]

我有一个大型数据集(约 5 Mio 行),其中包含机器学习训练的结果。现在我想检查结果是否达到“目标范围”。假设这个范围包含-0.25和之间的所有值+0.25。如果它在这个范围内,那么它就是a Hit,如果它低于Low并且在另一边High

我现在将创建这三列 Hit、Low、High 并计算适用条件的每一行并将 a 放入1该列中,其他两列将变为0。之后,我将对这些值进行分组并进行总结。但我怀疑一定有更好更快的方法,比如分组时直接计算。


数据

import pandas as pd

df = pd.DataFrame({"Type":["RF", "RF", "RF", "MLP", "MLP", "MLP"], "Value":[-1.5,-0.1,1.7,0.2,-0.7,-0.6]})

+----+--------+---------+
|    | Type   |   Value |
|----+--------+---------|
|  0 | RF     |    -1.5 | <- Low
|  1 | RF     |    -0.1 | <- Hit
|  2 | RF     |     1.7 | <- High
|  3 | MLP    |     0.2 | <- …
Run Code Online (Sandbox Code Playgroud)

python pandas

9
推荐指数
1
解决办法
542
查看次数

无法安装 magrittr

拿到了一台新的公司笔记本电脑并尝试安装 tidyr 或 installr,但由于 magrittr 总是失败。

\n

如果我想直接安装此软件包,我会收到以下错误代码:

\n
* installing *source* package 'magrittr' ...\n** package 'magrittr' successfully unpacked and MD5 sums checked\n** libs\n\n*** arch - i386\nWarning: running command 'make -f "C:/PROGRA~1/R/R-33~1.1/etc/i386/Makeconf" -f "C:/PROGRA~1/R/R-33~1.1/share/make/winshlib.mk" SHLIB="magrittr.dll" OBJECTS="pipe.o utils.o"' had status 127\nERROR: compilation failed for package 'magrittr'\n* removing 'C:/Users/xxxx/Documents/R/win-library/3.3/magrittr'\nWarning in install.packages :\n  running command '"C:/PROGRA~1/R/R-33~1.1/bin/x64/R" CMD INSTALL -l "C:\\Users\\xxxx\\Documents\\R\\win-library\\3.3" C:\\Users\\xxxx\\AppData\\Local\\Temp\\1\\RtmpMHlNI9/downloaded_packages/magrittr_2.0.1.tar.gz' had status 1\nWarning in install.packages :\n  installation of package \xe2\x80\x98magrittr\xe2\x80\x99 had non-zero exit status\n
Run Code Online (Sandbox Code Playgroud)\n

我没有这台计算机的管理员权限,可以想象这可能是问题的根源,但我不确定。

\n

我尝试过的:

\n
    \n
  • 更改了库的文件夹
  • \n …

r magrittr

5
推荐指数
1
解决办法
2010
查看次数

根据动态相关的两个条件进行过滤

我有一个大型数据集,其值称为CPE,百分比为PERC。在现实世界中,它略有不同,但我将其减少到必要的最低限度。

| CPE|      PERC|
|---:|---------:|
|  42| 0.1132664|
| 264| 0.9260718|
| 470| 0.3732287|
| 316| 0.7437126|
|   9| 0.5819554|
| 114| 0.2052649|
Run Code Online (Sandbox Code Playgroud)

现在我想过滤。较小的量CPE需要较高的量PERC才能聚焦。

我当然可以这样做:

df[(CPE > 20 & PERC > 0.95) |
     (CPE > 50 & PERC > 0.9) |
     (CPE > 100 & PERC > 0.85) |
     (CPE > 250 & PERC > 0.8)]
Run Code Online (Sandbox Code Playgroud)

但由于现实世界中可能有更多,而且它们可能会不时变化,因此我正在寻找一种更简单、更动态的解决方案。
就像创建一个包含所有组合的列表,然后使用每个组合作为过滤条件对。

list(c(20, 0.95), c(50, 0.9), c(100,0.85), c(250,0.8))
Run Code Online (Sandbox Code Playgroud)

有聪明的方法来处理这个问题吗?即使我更喜欢data.tabledplyr也很棒。这不是一个列表,我对任何类似的方法持开放态度。


微量元素

library(data.table)

set.seed(33) …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

Python Dash 每 60 分钟更新一次数据帧

我有一个脚本,它每小时收集数据并使用 Plotly Dash 将其可视化。

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.express as px
import pandas as pd

df = pd.read_csv("/home/pi/backup/data/data.csv").sort_values(by="Number")
df["Datetime"] = df["Datetime"].str.replace("T", " ").str.replace("Z", "")
df["Datetime"] = pd.to_datetime(df["Datetime"], format="%Y-%m-%d %H:%M:%S")
df["Datetime"] = df["Datetime"].dt.floor("H")
grouped = df.groupby(["Datetime", "Number", "Shop"]).min().reset_index()

app = dash.Dash(__name__)

tabs_styles = {
    'height': '30px'
}
tab_style = {
    'borderBottom': '1px solid #d6d6d6',
    'padding': '6px',
    'fontWeight': 'bold'
}
tab_selected_style = {
    'borderTop': '1px solid #d6d6d6',
    'borderBottom': '1px solid …
Run Code Online (Sandbox Code Playgroud)

python plotly-dash

0
推荐指数
1
解决办法
1105
查看次数

标签 统计

python ×2

r ×2

data.table ×1

magrittr ×1

pandas ×1

plotly-dash ×1