在过去的几天里,我尝试使用位于以下位置的说明来安装XGBoost
有些指令是直接的(例如conda install -c conda-forge xgboost)。其他一些则涉及几十个步骤,其中一些步骤对于像我这样的新手来说还不清楚并且令人困惑。
某些安装似乎可以正常工作,但是将模块导入jupyter笔记本电脑失败。例如,我可以在看到安装的文件...\Anaconda2\envs\py36\Lib\site-packages\xgboost-0.71-py3.6.egg\xgboost,但是导入会产生错误。
我的最新尝试,随后张贴在说明https://www.kaggle.com/general/30163#latest-330213:conda install -c anaconda py-xgboost。
同样,安装似乎可以正常进行:我可以在下看到安装的文件...\Anaconda2\envs\py36\Lib\site-packages\xgboost。但是在我的笔记本中,当我尝试同时使用
from xgboost import XGBRegressor
和
import xgboost
我懂了 OSError: [WinError 126] The specified module could not be found error.
完整的追溯如下。
有解决办法吗?更好的安装方式?我想继续观看Dan Becker关于kaggle的ML简介!
版本:
python version : 3.6.4150.1013
conda version : 4.3.30
Microsoft Windows : Version 10.0.16299.431
platform : win-64
git bash : launches a window labeled `MINGW64:/c/users/karls`
Run Code Online (Sandbox Code Playgroud)
追溯: …
注意:请参阅下面的编辑。
我需要保留从 df 中删除的所有行的日志,但我不确定如何捕获它们。日志应该是一个数据框,我可以为每个.drop或.drop_duplicates操作更新它。以下是我想要记录删除行的代码的 3 个示例:
df_jobs_by_user = df.drop_duplicates(subset=['owner', 'job_number'], keep='first')
df.drop(df.index[indexes], inplace=True)
df = df.drop(df[df.submission_time.dt.strftime('%Y') != '2018'].index)
Run Code Online (Sandbox Code Playgroud)
我找到了针对不同情况的解决方案,该.drop解决方案用于pd.isnull重新pd.dropna编码语句,因此允许在实际删除行之前生成日志:
df.dropna(subset=['col2', 'col3']).equals(df.loc[~pd.isnull(df[['col2', 'col3']]).any(axis=1)])
但在尝试将其适应时pd.drop_duplicates,我发现与 没有pd.isduplicate相似之处pd.isnull,因此这可能不是实现我需要的结果的最佳方式。
编辑
我在这里重写了我的问题,以便更准确地了解我想要的结果。
我从一个有一个重复行的 df 开始:
import pandas as pd
import numpy as np
df = pd.DataFrame([['whatever', 'dupe row', 'x'], ['idx 1', 'uniq row', np.nan], ['sth diff', 'dupe row', 'x']], columns=['col1', 'col2', 'col3'])
print(df)
# Output:
col1 col2 col3
0 …Run Code Online (Sandbox Code Playgroud) 我想要一个简单的bash命令来比较输出它们是否相同的两个哈希值.这是我尝试过的:
md5sum file1 | awk '{print $1}' # outputs hash value without filename
md5sum file1 > md5sum file2 # no output even though files/hashes differ
到目前为止,我已尝试过以下方面的变化,但没有成功:
[ md5sum states.txt | awk '{print $1}' == md5sum states_copy.txt | awk '{print $1}' ]
[ (md5sum states.txt | awk '{print $1}') == (md5sum states_copy.txt | awk '{print $1}') ]
我对脚本或多行bash解决方案开放,或者使用shasum,但我是Linux和bash的新手,所以尽量保持简单.
我正在运行Ubuntu 18.04.