小编Kev*_*ham的帖子

来自`dplyr ::: print.tbl_df`的"本地数据框"消息的含义是什么?

使用dplyr时,该tbl_df函数会打印一条声明数据框为"local"的语句:

> mtcars %>%
+     group_by(gear) 
Source: local data frame [32 x 11]
Groups: gear

    mpg cyl  ...
1  21.0   6  ...
Run Code Online (Sandbox Code Playgroud)

我认为本地数据框意味着内存,而非本地数据框是像SQL这样的数据库.不过,我认为我在这个假设上错了.在大约25:25的本教程视频中,Kevin Markham说data.frame对象不是本地数据框架,我相信它们是.

我查看了tbl_df文档并在dplyr简介中使用了搜索功能,但找不到本地数据框的描述.

问题: 什么是本地数据框架?

printing r dplyr

23
推荐指数
2
解决办法
3168
查看次数

如何在 scikit-learn 管道中的 CountVectorizer 之前包含 SimpleImputer?

我有一个熊猫DataFrame,包括文本的一列,我想矢量化文本使用scikit学习的CountVectorizer。但是,文本包含缺失值,因此我想在矢量化之前估算一个常量值。

我最初的想法是创建一个PipelineSimpleImputerCountVectorizer

import pandas as pd
import numpy as np
df = pd.DataFrame({'text':['abc def', 'abc ghi', np.nan]})

from sklearn.impute import SimpleImputer
imp = SimpleImputer(strategy='constant')

from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer()

from sklearn.pipeline import make_pipeline
pipe = make_pipeline(imp, vect)

pipe.fit_transform(df[['text']]).toarray()
Run Code Online (Sandbox Code Playgroud)

但是,fit_transform错误是因为SimpleImputer输出2D 数组CountVectorizer需要1D input。这是错误消息:

AttributeError: 'numpy.ndarray' object has no attribute 'lower'
Run Code Online (Sandbox Code Playgroud)

问题:我该如何修改Pipeline它才能使其正常工作?

注意:我知道我可以在 Pandas …

python machine-learning scikit-learn imputation countvectorizer

16
推荐指数
2
解决办法
1861
查看次数

使用名称中的句点创建Pandas系列

我运行了以下Python代码,它创建了一个带有两个Series(ab)的Pandas DataFrame ,然后尝试创建两个新的Series(cd):

import pandas as pd
df = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})
df['c'] = df.a + df.b
df.d = df.a + df.b
Run Code Online (Sandbox Code Playgroud)

我的理解是,如果Pandas系列是DataFrame的一部分,并且Series名称没有任何空格(并且不与现有属性或方法冲突),则可以作为DataFrame的属性访问Series.因此,我预计第3行会起作用(因为这就是你创建一个新的Pandas系列的方式),我预计第4行会失败(因为d在你执行那行代码之前,DataFrame 的属性不存在).

令我惊讶的是,第4行没有导致错误.相反,DataFrame现在包含三个系列:

>>> df
   a  b  c
0  1  4  5
1  2  5  7
2  3  6  9
Run Code Online (Sandbox Code Playgroud)

还有一个新对象,df.d就是熊猫系列:

>>> df.d
0    5
1    7
2    9
dtype: int64

>>> type(df.d)
pandas.core.series.Series
Run Code Online (Sandbox Code Playgroud)

我的问题如下:

  • 为什么第4行不会导致错误?
  • df.d现在"正常"熊猫系列所有的常规系列的功能? …

python pandas

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