小编Kar*_*ker的帖子

Python Anaconda Windows 10的XGBoost安装问题(2018年5月18日)

在过去的几天里,我尝试使用位于以下位置的说明来安装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-330213conda 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)

追溯: …

python python-3.x anaconda windows-10 xgboost

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

pandas 如何存储使用“drop_duplicates”删除的行?

注意:请参阅下面的编辑。

我需要保留从 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)

python dataframe pandas

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

Linux bash:比较哈希字符串而不设置变量

我想要一个简单的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.

linux bash awk md5sum sha1sum

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

标签 统计

python ×2

anaconda ×1

awk ×1

bash ×1

dataframe ×1

linux ×1

md5sum ×1

pandas ×1

python-3.x ×1

sha1sum ×1

windows-10 ×1

xgboost ×1