标签: data-science

在熊猫中舍入到最接近的 1000

我已经搜索了 pandas 文档和食谱,很明显您可以使用dataframe.columnName.round(decimalplace).

你如何用更大的数字做到这一点?

例如,我有一列房价,我希望它们四舍五入到最接近的 10000 或 1000 或其他。

df.SalesPrice.WhatDoIDo(1000)? 
Run Code Online (Sandbox Code Playgroud)

python pandas data-science

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

熊猫删除行与过滤器

I have a pandas dataframe and want to get rid of rows in which the column 'A' is negative. I know 2 ways to do this:

df = df[df['A'] >= 0]
Run Code Online (Sandbox Code Playgroud)

or

selRows = df[df['A'] < 0].index
df = df.drop(selRows, axis=0)
Run Code Online (Sandbox Code Playgroud)

What is the recommended solution? Why?

python dataframe pandas data-science

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

无法导入 category_encoders 模块

我无法在 python 3 虚拟环境中的 jupyter notebook 中导入category_encoders模块。

错误

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-15-86725efc8d1e> in <module>()
      9 from plotly import graph_objs
     10 from datetime import datetime
---> 11 import category_encoders as ce
     12 
     13 import sklearn

ModuleNotFoundError: No module named 'category_encoders'
Run Code Online (Sandbox Code Playgroud)

“哪个点”的输出

/opt/virtual_env/py3/bin/pip
Run Code Online (Sandbox Code Playgroud)

“pip show category_encoders”的输出是

Name: category-encoders
Version: 1.3.0
Summary: A collection sklearn transformers to encode categorical variables as numeric
Home-page: https://github.com/wdm0006/categorical_encoding
Author: Will McGinnis
Author-email: will@pedalwrencher.com
License: BSD
Location: /opt/virtual_env/py3/lib/python3.6/site-packages
Requires: numpy, pandas, statsmodels, …
Run Code Online (Sandbox Code Playgroud)

python encoding categorical-data data-science

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

如何仅使用 SimpleImputer 或等效工具转换某些列

我正在使用 scikit 库迈出第一步,发现自己需要回填数据框中的某些列。

我已经仔细阅读了文档,但我仍然不知道如何实现这一点。

为了使这更具体,假设我有:

A = [[7,2,3],[4,np.nan,6],[10,5,np.nan]]
Run Code Online (Sandbox Code Playgroud)

我想用平均值而不是第三列填充第二列。如何使用 SimpleImputer(或其他辅助类)执行此操作?

由此演变而来,自然的后续问题是:如何用平均值填充第二列,用常数填充最后一列(显然,仅适用于没有值的单元格)?

python pandas scikit-learn data-science imputation

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

JupyterLab 与 JupyterNotebook

Stack Overflow 上的大家好。今天,我想问一些非常不同的问题。

我目前是一名数据科学家,主要从事 JupyterLab/Notebook 的工作。我的几个同事使用 Notebook 而不是 JupyterLab。看起来这两者之间没有太大区别(我真的很喜欢 JupyterLab 用不同颜色呈现代码的方式)。我在网上搜索了一下,上面写着

JupyterLab 是下一代 Jupyter Notebook

但是,一些功能(例如绘图)在 JupyterLab 上效果不佳,但在 Jupyter Notebook 上效果很好。我不知道为什么会发生这种情况。

研究这两者的人能告诉我实际的区别吗?

在此输入图像描述

谢谢您的回复!

anaconda data-science jupyter-notebook jupyter-lab

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

Numpy asanyarray 与 asarray 的任何示例?

我在找一些例子显示之间的差异numpy.asanyarray()numpy.asarray()?在什么情况下我应该专门使用 asanyarray()?

python numpy machine-learning data-science

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

cv2.approxPolyDP() , cv2.arcLength() 这些是如何工作的

这些功能是如何工作的?我正在使用 Python3.7 和 OpenCv 4.2.0。提前致谢。

approx = cv2.approxPolyDP(cnt, 0.01*cv2.arcLength(cnt, True), True)
Run Code Online (Sandbox Code Playgroud)

python opencv image-manipulation computer-vision data-science

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

一种有效的分位数算法/数据结构,允许样本随着时间的推移而增加?

我正在寻找一种有效的分位数算法,该算法允许样本值随着时间的推移而“更新”或替换。

假设我有 items 的值1-n。我想将这些放入一个可以有效存储它们的分位数算法中。但是然后说在将来的某个时候, for 的值item-i会增加。我想删除原始值item-i并将其替换为更新后的值。特定用例适用于样本值随时间增加的流系统。

我见过的最接近这样的东西是t-Digest 数据结构。它有效地存储样本值。它唯一缺乏的是删除和替换样本值的能力。

我还查看了Apache Quantiles Datasketch - 它遇到了同样的问题 - 无法删除和替换样本。

编辑:更多地考虑这一点,不一定需要删除旧值并插入增加的值。如果存在只能更新值的约束,则可能有一种方法可以更轻松地重新计算内部状态。

java statistics quantile data-science

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

Python 中残差与预测值的残差图

我运行了一个 KNN 模型。现在我想绘制残差与预测值图。来自不同网站的每个示例都表明我必须首先运行线性回归模型。但我不明白该怎么做。有人可以帮忙吗?提前致谢。这是我的模型-

train, validate, test = np.split(df.sample(frac=1), [int(.6*len(df)), int(.8*len(df))])
x_train = train.iloc[:,[2,5]].values
y_train = train.iloc[:,4].values
x_validate = validate.iloc[:,[2,5]].values
y_validate = validate.iloc[:,4].values
x_test = test.iloc[:,[2,5]].values
y_test = test.iloc[:,4].values
clf=neighbors.KNeighborsRegressor(n_neighbors = 6)
clf.fit(x_train, y_train)
y_pred = clf.predict(x_validate)
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn data-science

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

numpy.gradient 函数的反函数

我需要创建一个与 np.gradient 函数相反的函数。

其中 Vx,Vy 数组(速度分量向量)是输入,输出将是数据点 x,y 处的反导数(到达时间)数组。

我在 (x,y) 网格上有数据,每个点都有标量值(时间)。

我使用了 numpy 梯度函数和线性插值来确定每个点的梯度向量速度(Vx,Vy)(见下文)。

我通过以下方式实现了这一目标:

 #LinearTriInterpolator applied to a delaunay triangular mesh
 LTI= LinearTriInterpolator(masked_triang, time_array)

 #Gradient requested at the mesh nodes:
 (Vx, Vy) = LTI.gradient(triang.x, triang.y)
Run Code Online (Sandbox Code Playgroud)

下面的第一幅图显示了每个点的速度向量,点标签表示形成导数 (Vx,Vy) 的时间值 在每个点显示的速度向量和相关的时间值

下图显示了导数 (Vx,Vy)的结果标量值,绘制为带有关联节点标签的彩色等高线图。

导数标量图

所以我的挑战是:

我需要逆转这个过程!

使用梯度向量 (Vx,Vy) 或结果标量值来确定该点的原始时间值。

这可能吗?

知道 numpy.gradient 函数是使用内部点的二阶精确中心差异和边界处的一阶或二阶精确一侧(向前或向后)差异计算的,我相信有一个函数可以逆转这一点过程。

我在想,在原始点(x1,y1 处的 t=0)到 Vx,Vy 平面上的任何点 (xi,yi) 之间取线导数会给我速度分量的总和。然后我可以用这个值除以两点之间的距离来得到所用的时间..

这种方法行得通吗?如果是这样,最好应用哪个 numpy 集成函数?

在此处输入图片说明

可以在此处找到我的数据示例 [http://www.filedropper.com/calculatearrivaltimefromgradientvalues060820]

您的帮助将不胜感激

编辑:

也许这个简化的绘图可能有助于理解我想要到达的地方.. 简化图

编辑:

感谢@Aguy 提供了此代码。我尝试使用间距为 0.5 x 0.5m 的网格并计算每个网格点的梯度来获得更准确的表示,但是我无法正确集成它。我也有一些影响我不知道如何纠正的结果的边缘影响。

import numpy as np …
Run Code Online (Sandbox Code Playgroud)

python integration numpy scipy data-science

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