小编Chr*_*ris的帖子

循环遍历数据框列名 - R

我正在尝试遍历数据框的列名,并评估每列的哪个类.

for (i in columns(df)){
  class(df$i)
}
Run Code Online (Sandbox Code Playgroud)

除了正确的方法,我已经尝试了一切.

PS:我想以这种方式做,因为我必须为每个班级设置不同的条件.

loops r dataframe

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

在Pandas类型上,nanfunctions和regular函数表现相同

通常numpy.var()与numpy.nanvar()缺少值时不同,对于numpy.std()和numpy.nanstd().然而:

df = pd.DataFrame({'A': [1,2,3,4,5,6,7,8,9,10,np.NaN,np.NaN,np.NaN]})

print("np.var() " + " : "+ str(np.var(df["A"])))
print("np.nanvar() " + " : "+ str(np.nanvar(df["A"])))
print("np.std() " + " : "+ str(np.std(df["A"])))
print("np.nanstd() " + " : "+ str(np.nanstd(df["A"])))
Run Code Online (Sandbox Code Playgroud)

结果:

np.var() : 8.25
np.nanvar() : 8.25
np.std() : 2.8722813232690143
np.nanstd() : 2.8722813232690143
Run Code Online (Sandbox Code Playgroud)

为什么两者都一样?在np.var()或的文档中没有任何关于缺失值的内容np.std().

python statistics numpy pandas

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

多重预测

我有一个 df ,我需要预测未来 7 天内每一天的因变量(数字)。数据train是这样的:

df.head()
Date                   X1                X2             X3    Y
2004-11-20          453.0               654            989  716   # row 1
2004-11-21          716.0               878            886  605
2004-11-22          605.0               433            775  555
2004-11-23          555.0               453            564  680
2004-11-24          680.0               645            734  713
Run Code Online (Sandbox Code Playgroud)

具体来说,对于2004-11-20第 1 行中的日期,我需要Y未来 7 天的每一天的预测值,而不仅仅是当前日期(变量Y),并且考虑到要预测从 开始的第 5 天,2004-11-20我将不会获得数据未来 4 天可用,起始时间为2004-11-20。

我一直在考虑创建 7 个以上变量("Y+1day"、"Y+2day" 等),但我需要每天创建一个训练 df ,因为机器学习技术仅返回一个变量作为输出。有没有更简单的方法?

我正在使用skikit-learn 库进行建模。

python datetime prediction scikit-learn

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

R 相当于 python 中的 string.replace()

我需要替换字符向量的某些值:

x <- data.frame(Strings = c("one", "two","three","four","five","four","five","four","five","two","thre","two","three","two","three"), stringsAsFactors = FALSE)
> x
   Strings
1      one
2      two
3    three
4     four
5     five
6     four
7     five
8     four
9     five
10     two
11   three
12     two
13   three
14     two
15   three
Run Code Online (Sandbox Code Playgroud)

在 python 中,我会这样做:

x["Strings"].replace(["one", "two", "thre","three"], ["One","Two","Three","Three"], inplace=True)
Run Code Online (Sandbox Code Playgroud)

但是在 r 中,该函数的replace()工作方式并不相同。Stackoverflow 中的字符串替换有很多解决方案,但没有一个这么简单。这在 r 中可能吗?

string r data-manipulation

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

使用级别中的唯一值重新索引 MultiIndex

我有这个数据框:

df = pd.DataFrame({'NUMBER_1': {('2019-07', 'A'): 4, ('2019-07', 'D'): 2, ('2019-08', 'A'): 32, ('2019-08', 'B'): 14, ('2019-09', 'A'): 32, ('2019-09', 'B'): 53, ('2019-09', 'C'): 54, ('2019-09', 'D'): 24},
 'NUMBER_2': {('2019-07', 'A'): 75, ('2019-07', 'D'): 12, ('2019-08', 'A'): 42, ('2019-08', 'B'): 32, ('2019-09', 'A'): 54, ('2019-09', 'B'): 21,  ('2019-09', 'C'): 97, ('2019-09', 'D'): 65}})
Run Code Online (Sandbox Code Playgroud)

df:

在此处输入图片说明

我在哪里寻找这个输出:

在此处输入图片说明

我已经看到了针对分类类型列的类似问题,但没有看到针对索引的类似问题,我正在寻找一种方法来避免使用该方法,reset_index()因为实际上我使用了四个索引,而不是最小示例中的两个索引。有什么建议?

python pandas

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

构建与决策树分类器具有相同输出概率的随机森林分类器

我一直在尝试构建RandomForestClassifier()(RF)模型和DecisionTreeClassifier()(DT)模型以获得相同的输出(仅用于学习目的)。我发现了一些带有答案的问题,我使用这些答案来构建此代码,例如使两个模型相等所需的参数,但我找不到实际执行此操作的代码,因此我正在尝试构建该代码:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

random_seed = 42

X, y = make_classification(
    n_samples=100000,
    n_features=5,
    random_state=random_seed
)

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=random_seed)

DT = DecisionTreeClassifier(criterion='gini',             # default
                            splitter='best',              # default
                            max_depth=None,               # default
                            min_samples_split=3,          # default
                            min_samples_leaf=1,           # default
                            min_weight_fraction_leaf=0.0, # default
                            max_features=None,            # default
                            random_state=random_seed,     # NON-default …
Run Code Online (Sandbox Code Playgroud)

python machine-learning decision-tree random-forest scikit-learn

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

R与点("."),"〜"和管道(%>%)运算符的组合

我一直在寻找很多答案,但我仍然无法完全理解它们.例如,最明显的一个(在这里),其中包括(1,2,3)给出了具体的实例对点的各种用途,但我不能在这里理解,例如,它的应用:

car_data <- 
  mtcars %>%
  subset(hp > 100) %>%
  aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2)) %>%
  transform(kpl = mpg %>% multiply_by(0.4251)) %>%
  print

#result:
  cyl   mpg  disp    hp drat   wt  qsec   vs   am gear carb    kpl
1   4 25.90 108.0 111.0 3.94 2.15 17.75 1.00 1.00 4.50 2.00 11.010
2   6 19.74 183.3 122.3 3.59 3.12 17.98 0.57 0.43 3.86 3.43  8.391
3   8 15.10 …
Run Code Online (Sandbox Code Playgroud)

r pipe dplyr magrittr

4
推荐指数
1
解决办法
864
查看次数

如何将可调用对象打印为字符串?

我想应该已经有这样的问题了,但是我还没有找到。这可能是因为我不知道我正在寻找的确切概念/单词,但这里是一个例子:

我有这个代码:

group_1 = ['Hello', 'world', '!']
group_2 = [1,23,4,2,5,2]
group_3 = ['A', 'K', 'L']

all_groups = [group_1, group_2, group_3]
for i in all_groups:
    print(i, ':', len(i))
Run Code Online (Sandbox Code Playgroud)

它给出了这个输出:

['Hello', 'world', '!'] : 3
[1, 23, 4, 2, 5, 2] : 6
['A', 'K', 'L'] : 3
Run Code Online (Sandbox Code Playgroud)

这是预期的输出:

'group_1' : 3
'group_2' : 6
'group_3' : 3
Run Code Online (Sandbox Code Playgroud)

group_1正如您所看到的,我正在尝试打印可调用对象、group_2和 的名称group_3。有什么建议么?

python

4
推荐指数
1
解决办法
487
查看次数

在给定大小的幻灯片中绘制 ggplot2 图形 - R

ggplot2我正在尝试在带有包的幻灯片幻灯片中绘制图表officer。我实际上可以做到这一点(ggplot2直接在 ppt 中打印),但是因为我需要增加图形的大小ggplot2(对于 ppt 幻灯片),并且我知道ggplot2图形取决于窗口的大小(在 中RStudio)或无论您将其设置为导出它,我都在寻找一种方法来(1)导出具有给定大小的 ggplot2 图形(例如:height=5, width=8),(2)从 ppt 代码导入/读取:

library(officer)
library(devEMF)
library(magrittr)
library(ggplot2)

t <- "../example.pptx"
filename <- gg

read_pptx() %>% 
  add_slide(layout = "Title and Content", master = "Office Theme") %>% 
  ph_with_img(src = filename, width = 6, height = 4, type = "body") %>% 
  print(target = t)
Run Code Online (Sandbox Code Playgroud)

gg是 ggplot2 中的任何图(实际上并不重要)。t是输出文件地址。

ph_with_img

PowerPoint 文档和图形

PD:如果有一些我不知道的包/命令并且我仍然找不到,我可以在其中编辑 ggplot2 的大小,那么所有这些都是不必要的。

powerpoint r ggplot2 officer

3
推荐指数
1
解决办法
5984
查看次数

转置data.frame并计算每列的非NA值

我有这个数据框:

set.seed(100)
x <- data.frame(KAS1_1 = sample(c(letters[1], NA), 10, replace =TRUE),
                KAS1_2 = sample(c(letters[2], NA), 10, replace =TRUE),
                KAS1_3 = sample(c(letters[3], NA), 10, replace =TRUE),
                KAS1_4 = sample(c(letters[4], NA), 10, replace =TRUE),
                KAS1_5 = sample(c(letters[5], NA), 10, replace =TRUE),
                stringsAsFactors = FALSE)
> df
   KAS1_1 KAS1_2 KAS1_3 KAS1_4 KAS1_5
1       a   <NA>   <NA>      d      e
2       a   <NA>   <NA>   <NA>   <NA>
3    <NA>      b   <NA>      d   <NA>
4       a      b   <NA>   <NA>   <NA>
5       a   <NA>      c   <NA>   <NA>
6 …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation lapply dplyr

3
推荐指数
1
解决办法
40
查看次数