我一直在尝试安装 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) 从以下数据框中,我尝试添加一个新列,条件是每次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)
但这些都没有给出想要的结果。
我从一个巨大的数据框中获取了以下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时
每当我尝试将 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) 我正在尝试转换以下数据框
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”是日期时间类型
我正在尝试编写一个函数,该函数遍历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 ×6
pandas ×4
dataframe ×1
datetime ×1
graphviz ×1
group-by ×1
list ×1
python-3.x ×1
statsmodels ×1
week-number ×1