我很困惑,因为如果你第一次这样做会成为一个问题OneHotEncoder然后StandardScaler因为缩放器也将缩放之前转换过的列OneHotEncoder.有没有办法同时执行编码和缩放,然后将结果连接在一起?
主要目标如下:
1)适用StandardScaler于连续变量
2)应用LabelEncoder和OnehotEncoder分类变量
连续变量需要缩放,但同时,一些分类变量也是整数类型.应用StandardScaler会导致不良影响.
另一方面,StandardScaler将扩展基于整数的分类变量,这也不是我们的.
由于连续变量和分类变量混合在一个PandasDataFrame中,所以推荐的工作流程是什么来解决这类问题?
说明我的观点的最好例子是Kaggle Bike Sharing Demand数据集,其中season和weather是整数分类变量
python machine-learning pandas scikit-learn categorical-data
例如,我有两个lambda函数可应用于分组的数据帧:
df.groupby(['A', 'B']).apply(lambda g: ...)
df.groupby(['A', 'B']).apply(lambda g: ...)
Run Code Online (Sandbox Code Playgroud)
两者都可以,但不能同时使用:
df.groupby(['A', 'B']).apply([lambda g: ..., lambda g: ...])
Run Code Online (Sandbox Code Playgroud)
这是为什么?如何将不同的功能应用于已分组的对象,并使每个结果按列逐列连接在一起?
有没有一种方法可以不为函数指定某些列?您建议的所有内容似乎仅适用于某些列。
每当打开终端时,我总是会遇到同样的错误。
-bash: export: `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/usr/local/hadoop/bin': not a valid identifier
Run Code Online (Sandbox Code Playgroud)
每当运行命令行时,终端都会抛出错误,例如
-bash: sudo: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我什至无法编辑 ~/.bashrcgedit ~/.bashrc我认为这可能是问题所在。但 aecho $PATH给了我一个空行。
顺便说一句,所有这些事情都发生在我的个人帐户下。有一个专用的 hadoop 用户帐户,我专门为运行 hadoop 创建了该帐户,并且实际上运行良好,没有出现任何故障。
如果有人能告诉我这里发生了什么,我真的很感激,这让我沮丧了一周左右。提前致谢。
编辑:
事实证明,在我创建第二个帐户(用于hadoop)之前,我在文件末尾修改了它的bashrc,我完全忘记了。因此,它必然会遇到麻烦。休再次感谢你们帮助我,提醒我检查 bashrc 文件以及显然如何在这种情况下运行命令行。
为什么此操作会失败?例如:
a = pd.DataFrame({'a': [1,2,np.nan, np.nan],
'b': [5,np.nan,6, np.nan],
'c': [5, 1, 5, 2]})
a[['a', 'b']].fillna(0, inplace=True)
Run Code Online (Sandbox Code Playgroud)
并给了我这个警告:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
Run Code Online (Sandbox Code Playgroud)
但是a仍然NA像以前一样充满。但是,如果我.fillna()分别在每个列上调用,就不会有问题。如何NA一次拍摄多列值?
的series_A为NAS由多指标索引(X, Y),而值填补是在Series_B,这是由索引X.如何有效地解决这类问题?
例如,这是series_A:
bar one 0.299368
two NaN
baz one -0.863838
two -0.251905
foo one 1.063327
two NaN
qux one 0.206053
two 0.408204
Run Code Online (Sandbox Code Playgroud)
并series_B包含要填写的值:
bar 0.123
foo 0.456
Run Code Online (Sandbox Code Playgroud)