小编Luc*_*esl的帖子

安装graphviz,没有名为graphviz的模块

我一直在尝试安装 graphviz 并与 python 连接来绘制决策树的一些节点。我读过很多与我有同样问题的线程,但我执行了大部分解决方案,但我仍然无法执行我的决策树:(

我不是程序员,我只是一个简单的经济学家,正在尝试学习机器学习模型,所以对我来说很难阅读其他线程中提供的大部分解决方案。

我已经可以conda install -c anaconda graphviz在我的cmd中安装并且conda install -c anaconda pydot安装完成了。(我还从GraphViz页面下载了rar包)

然后我尝试导入 graphviz,但 python 显示以下错误No module named 'graphviz'

因此,我尝试使用以下 cd 添加到我的环境中的新路径C:\Program Files (x86)\Graphviz2.38\bin,但我仍然遇到同样的问题。

我试图在我的间谍代码中运行以下脚本,但没有成功

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

import pydot
from IPython.display import Image, display
# import graphviz as gv

from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.externals.six import StringIO  
from sklearn.tree import DecisionTreeRegressor, DecisionTreeClassifier, 
export_graphviz
from …
Run Code Online (Sandbox Code Playgroud)

python graphviz decision-tree python-3.x random-forest

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

使用 groupby 创建具有最大值的新列

从以下数据框中,我尝试添加一个新列,条件是每次id检查最大值。然后将每个的每一行的最大值id放在新列中。

df

id  value
1   0
1   0
1   0
2   0
2   1
3   1
3   1
Run Code Online (Sandbox Code Playgroud)

预期结果:

id  value new_column
1   0     0
1   0     0
1   0     0
2   0     1
2   1     1
3   1     1
3   1     1
Run Code Online (Sandbox Code Playgroud)

我试过了:

df['new_column'] = df.groupby(['id'])['value'].idxmax()
Run Code Online (Sandbox Code Playgroud)

或者:

df['new_column'] = df.groupby(['id'])['value'].max()
Run Code Online (Sandbox Code Playgroud)

但这些都没有给出想要的结果。

python group-by dataframe pandas pandas-groupby

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

熊猫.round()未按要求四舍五入

我从一个巨大的数据框中获取了以下ID,其中包含很多ID,我特别选择了这个ID以向您展示问题所在

                 id  year    anual_jobs     anual_wage
874180  20001150368  2010          10.5    1071.595917
Run Code Online (Sandbox Code Playgroud)

在此之后我编码

df.anual_jobs= df.anual_jobs.round() 
Run Code Online (Sandbox Code Playgroud)

我收到此错误,但是代码仍然可以运行。

A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy
self[name] = value
Run Code Online (Sandbox Code Playgroud)

我的结果是:

                 id  year    anual_jobs     anual_wage
874180  20001150368  2010          10.0    1071.595917
Run Code Online (Sandbox Code Playgroud)

当我想将anual_jobs舍入为11.0而不是10.0时

python pandas

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

无法导入 statsmodels.formula.api

每当我尝试将 statsmodels.formula.api 作为 smf 导入时,我都会收到以下错误。

import statsmodels.formula.api as smf

Traceback (most recent call last):

File "<ipython-input-257-268d740a5877>", line 1, in <module>
   import statsmodels.formula.api as smf

File "C:\Users\ldresl\Anaconda3\lib\site- 
    packages\statsmodels\formula\__init__.py", line 1, in <module>
  from statsmodels import PytestTester

 ImportError: cannot import name 'PytestTester'
Run Code Online (Sandbox Code Playgroud)

python statsmodels

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

转换日期:从年和周数转换为日期时间

我正在尝试转换以下数据框

id  year  week 
 1  2018    43
 1  2019     1
 2  2019     4
 3  2018    51
Run Code Online (Sandbox Code Playgroud)

到包含以下列的数据框中

id  year  week  year_week
 1  2018    43    2018-43
 1  2019     1     2019-1
 2  2019     4     2019-4
 3  2018    51    2018-51
Run Code Online (Sandbox Code Playgroud)

其中“year_week”是日期时间类型

python datetime week-number pandas

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

列表理解中的列表,查找字符串中元音的数量

我正在尝试编写一个函数,该函数遍历np.array包含电子邮件的 a,并且我想以数组的形式获取电子邮件中存在的元音数量

我的尝试是:

def number_of_vouls(email):
    vouls = 'aeiouAEIOU'
    name = [e.split('@')[0] for e in email]
    return [sum(1 for c in name if c in vouls) for n in name]

number_of_vouls(np.array(['aaaab@yahoo.com', 'lingardo.pev@gmail.com']))

output: [0, 0]
Run Code Online (Sandbox Code Playgroud)

[5, 4]对于这种情况,预期的输出应该是:

我认为我的问题是我无法按内部字符循环name但不知道如何解决它

python list-comprehension list pandas

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