小编Pou*_*del的帖子

如何在jupyter-notebook中编辑markdown单元格

我和jupyter-notebook有一个奇怪的问题.
我正在练习笔记本,它有降价和代码单元格.

当我保存并重新打开笔记本时,我可以编辑代码单元格,但不能编辑降价单元格.

尝试:
1.重新加载页面.
2.让笔记本电脑值得信赖.
3.尝试将单元格类型从markdown更改为code或raw但仍无法编辑.

注意:我可以删除markdown上的一些字母,但我不能添加任何字母.此外,如果我按Enter键将创建新行,但我不能在那里写任何东西.

问题 我们如何编辑jupyter-notebook的降价单元格?

代码如下:

https://github.com/bhishanpdl/Shared_to_public/blob/master/notebook_problem/example.ipynb

python markdown ipython-notebook jupyter-notebook

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

如何在熊猫中正确找到偏度和峰度?

我想知道如何在熊猫中正确计算偏度和峰度。Pandas 给出了一些值skew()kurtosis()值,但它们似乎与值大不相同scipy.stats。哪个信任熊猫或scipy.stats

这是我的代码:

import numpy as np
import scipy.stats as stats
import pandas as pd

np.random.seed(100)
x = np.random.normal(size=(20))

kurtosis_scipy = stats.kurtosis(x)
kurtosis_pandas = pd.DataFrame(x).kurtosis()[0]

print(kurtosis_scipy, kurtosis_pandas)
# -0.5270409758168872
# -0.31467107631025604

skew_scipy = stats.skew(x)
skew_pandas = pd.DataFrame(x).skew()[0]

print(skew_scipy, skew_pandas)
# -0.41070929017558555
# -0.44478877631598901
Run Code Online (Sandbox Code Playgroud)

版本:

print(np.__version__, pd.__version__, scipy.__version__)
1.11.0 0.20.0 0.19.0
Run Code Online (Sandbox Code Playgroud)

python scipy pandas

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

如何在pandas中groupby之后获得两组之间的p值?

我被困在如何应用自定义函数来计算从 Pandas groupby 获得的两组的 p 值。

词汇

test = 0 ==> test
test = 1 ==> control

Run Code Online (Sandbox Code Playgroud)

问题设置

import numpy as np
import pandas as pd
import scipy.stats as ss

np.random.seed(100)
N = 15
df = pd.DataFrame({'country': np.random.choice(['A','B','C'],N),
                   'test': np.random.choice([0,1], N),
                   'conversion': np.random.choice([0,1], N),
                   'sex': np.random.choice(['M','F'], N)

                  })


ans = df.groupby(['country','test'])['conversion'].agg(['size','mean']).unstack('test')
ans.columns = ['test_size','control_size','test_mean','control_mean']
         test_size  control_size  test_mean  control_mean
country                                                  
A                3             3   0.666667      0.666667
B                1             1   1.000000      1.000000
C                4             3   0.750000      1.000000
Run Code Online (Sandbox Code Playgroud)

现在我想再添加两列以获取测试组和对照组之间的 p 值。但是在我的 groupby 中,我一次只能对一个系列进行操作,我不确定如何使用两个系列来获得 …

python numpy scipy pandas p-value

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

如何为 catboost 创建自定义评估指标?

类似的问题:

Catboost 教程

问题

在这个问题中,我有一个二元分类问题。建模后,我们得到了测试模型预测y_pred,并且我们已经有了真正的测试标签y_true

我想获得由以下等式定义的自定义评估指标:

profit = 400 * truePositive - 200*fasleNegative - 100*falsePositive
Run Code Online (Sandbox Code Playgroud)

另外,由于利润越高越好,我想最大化该功能而不是最小化它。

如何在catboost中获取这个eval_metric?

使用sklearn

profit = 400 * truePositive - 200*fasleNegative - 100*falsePositive
Run Code Online (Sandbox Code Playgroud)

使用catboost

def get_profit(y_true, y_pred):
    tn, fp, fn, tp = sklearn.metrics.confusion_matrix(y_true,y_pred).ravel()
    loss = 400*tp - 200*fn - 100*fp
    return loss

scoring = sklearn.metrics.make_scorer(get_profit, greater_is_better=True)
Run Code Online (Sandbox Code Playgroud)

问题

如何在catboost中完成自定义eval指标?

更新

到目前为止我的更新

class ProfitMetric(object):
    def get_final_error(self, error, weight):
        return error / (weight + 1e-38)

    def is_max_optimal(self):
        return True

    def …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn catboost

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

如何在谷歌合作笔记本中显示情节输出?

我搜索了一整天如何在 google colaboratory jupyter notebooks 中显示情节图的输出。有一个 stackoverflow question 和来自 google colaboratory 的官方教程,但它们都对我不起作用。

官方链接:https :
//colab.research.google.com/notebooks/charts.ipynb#scrollTo=hFCg8XrdO4xj

stackoverflow 问题:
Plotly notebook 模式与 google colaboratory
https://colab.research.google.com/drive/14oudHx5e5r7hm1QcbZ24FVHXgVPD0k8f#scrollTo=8RCjUVpi2_xd

内置的 google colaboratory plotly 版本是 1.12.12。

测试情节版本

import plotly
plotly.__version__
1.12.12
Run Code Online (Sandbox Code Playgroud)

加载库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Run Code Online (Sandbox Code Playgroud)

挂载谷歌驱动器

from google.colab import drive
drive.mount('/content/drive')

dat_dir = 'drive/My Drive/Colab Notebooks/data/'
Run Code Online (Sandbox Code Playgroud)

官方谷歌合作方法(失败)

# https://colab.research.google.com/notebooks/charts.ipynb#scrollTo=hFCg8XrdO4xj
def enable_plotly_in_cell():
  import IPython
  from plotly.offline import init_notebook_mode
  display(IPython.core.display.HTML('''
        <script src="/static/components/requirejs/require.js"></script>
  '''))
  init_notebook_mode(connected=False)
Run Code Online (Sandbox Code Playgroud)

测试官方建议(失败) …

python plotly jupyter-notebook google-colaboratory

6
推荐指数
2
解决办法
9025
查看次数

Pandas 风格:如何突出对角线元素

我想知道如何使用突出显示熊猫数据框的对角线元素 df.style方法。

我找到了这个官方链接,他们讨论了如何突出最大值,但我很难创建突出对角元素的函数。

下面是一个例子:

import numpy as np
import pandas as pd

df = pd.DataFrame({'a':[1,2,3,4],'b':[1,3,5,7],'c':[1,4,7,10],'d':[1,5,9,11]})

def highlight_max(s):
    '''
    highlight the maximum in a Series yellow.
    '''
    is_max = s == s.max()
    return ['background-color: yellow' if v else '' for v in is_max]

df.style.apply(highlight_max)
Run Code Online (Sandbox Code Playgroud)

这给出了以下输出: 在此处输入图片说明

我只想要对角线元素 1,3,7,11 上的黄色突出显示。

怎么做?

python pandas

6
推荐指数
3
解决办法
958
查看次数

如何在 google colab 中使用 jupyter nbextension“代码美化”?

我已经使用 jupyter notebook 很长时间了。最近我正在使用 google colab 进行一些实验。我在 jupyter notebook 中经常做的一件事是使用“代码美化”扩展名格式化代码。

有没有办法在 google colab 中使用这个扩展?

我将不胜感激这些建议。

参考

python jupyter-notebook google-colaboratory

6
推荐指数
0
解决办法
408
查看次数

如何在 Pyspark 中标准化和创建相似度矩阵?

我见过很多关于相似性矩阵的堆栈溢出问题,但它们处理 RDD 或其他情况,我找不到我的问题的直接答案,我决定发布一个新问题。

问题

import numpy as np
import pandas as pd
import pyspark
from pyspark.sql import functions as F, Window
from pyspark import SparkConf, SparkContext, SQLContext
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.feature import StandardScaler,Normalizer
from pyspark.mllib.linalg.distributed import IndexedRow, IndexedRowMatrix

spark = pyspark.sql.SparkSession.builder.appName('app').getOrCreate()
sc = spark.sparkContext
sqlContext = SQLContext(sc)

# pandas dataframe
pdf = pd.DataFrame({'user_id': ['user_0','user_1','user_2'],
                   'apple': [0,1,5],
                   'good banana': [3,0,1],
                   'carrot': [1,2,2]})
# spark dataframe
df = sqlContext.createDataFrame(pdf)
df.show()

+-------+-----+-----------+------+
|user_id|apple|good banana|carrot|
+-------+-----+-----------+------+
| user_0|    0|          3|     1|
| …
Run Code Online (Sandbox Code Playgroud)

python pandas apache-spark apache-spark-sql pyspark

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

Jupyter笔记本:未检测到小部件Javascript

问题:我在MacOs 10.9中使用pip3安装了python3和jupyter笔记本。
当我尝试运行窗口小部件时,出现错误,提示没有javascript小部件。我在Jupyter-notebook中安装了python3和R内核。

码:

from ipywidgets import widgets
from IPython.display import display
text = widgets.Text()
display(text)
text.on_submit('hello')
Run Code Online (Sandbox Code Playgroud)

错误:

Widget Javascript not detected.  It may not be installed or enabled properly.  
Run Code Online (Sandbox Code Playgroud)

尝试次数:

sudo -H pip3 install ipywidgets  
sudo -H pip3 install -upgrade ipywidgets  
jupyter nbextension enable --py widgetsnbextension
# restarted the computer. 
Run Code Online (Sandbox Code Playgroud)

最后一条命令给出错误。

[EnableNBExtensionApp] CRITICAL | Bad config encountered during initialization:
[EnableNBExtensionApp] CRITICAL | Unrecognized flag: '--py'
Run Code Online (Sandbox Code Playgroud)

请注意,在Mac中,我有jupyter-nbextension命令,但该命令为:

jupyter-nbextension enable --py widgetsnbextension 
Run Code Online (Sandbox Code Playgroud)

也不起作用。

但是jupyter nbextension enable widgetsnbextension没有错误,也没有任何作用。如果运行代码,则会弹出相同的错误。

也,

import …
Run Code Online (Sandbox Code Playgroud)

jupyter-notebook

5
推荐指数
2
解决办法
6764
查看次数

如何在 Seaborn 图中显示标签(没有找到带有标签的句柄放在图例中。)?

我试图使用 seaborn 进行绘图,但标签没有显示出来,即使它被分配在轴对象中。

如何在情节上显示标签?

这是我的代码:

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

dx = pd.DataFrame({'c0':range(5), 'c1':range(5,10)})
dx.index = list('abcde')

ax = sns.pointplot(x=dx.index,
                y="c0",
                data=dx, color="r",
                scale=0.5, dodge=True,
                capsize=.2, label="child")
ax = sns.pointplot(x=dx.index,
                y="c1",
                data=dx, color="g",
                scale=0.5, dodge=True,
                capsize=.2, label="teen")
ax.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

图例给出了错误: No handles with labels found to put in legend.

python matplotlib seaborn

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