小编el_*_*ldo的帖子

根据列上的值展平数据框的最佳方法

我必须使用一些数千行来处理整个数据帧,但我可以简化如下:

df = pd.DataFrame([
('a', 1, 1),
('a', 0, 0),
('a', 0, 1),
('b', 0, 0),
('b', 1, 0),
('b', 0, 1),
('c', 1, 1),
('c', 1, 0),
('c', 1, 0)
], columns=['A', 'B', 'C'])

print (df)

   A  B  C
0  a  1  1
1  a  0  0
2  a  0  1
3  b  0  0
4  b  1  0
5  b  0  1
6  c  1  1
7  c  1  0
8  c  1  0
Run Code Online (Sandbox Code Playgroud)

我的目标是根据它们在"A"列中的标签来展平"B"和"C"列

   A  B_1  B_2 …
Run Code Online (Sandbox Code Playgroud)

vectorization dataframe pandas

12
推荐指数
2
解决办法
1332
查看次数

如何创建传递自定义半径的地理热图

我想使用 folium 在地图上创建可视化。在地图中,我想观察有多少项目与构建热图的特定地理点相关。下面是我正在使用的代码。

import pandas as pd
import folium
from folium import plugins

data = [[41.895278,12.482222,2873494.0,20.243001,20414,7.104243],
        [41.883850,12.333330,3916.0,0.835251,4,1.021450],
        [41.854241,12.567000,22263.0,1.132390,35,1.572115],
        [41.902147,12.590388,19505.0,0.839181,37,1.896950],
        [41.994240,12.48520,16239.0,1.383981,25,1.539504]]

df = pd.DataFrame(columns=['latitude','longitude','population','radius','count','normalized'],data=data)

middle_lat = df['latitude'].median()
middle_lon = df['longitude'].median()
m = folium.Map(location=[middle_lat, middle_lon],tiles = "Stamen Terrain",zoom_start=11)

# convert to (n, 2) nd-array format for heatmap
points = df[['latitude', 'longitude', 'normalized']].dropna().values

# plot heatmap
plugins.HeatMap(points, radius=15).add_to(m)
m.save(outfile='map.html')
Run Code Online (Sandbox Code Playgroud)

这是结果

热图

在此地图中,每个点都有相同的半径。安装后,我想创建一个热图,其中点半径与其所属城市成正比。我已经尝试在列表中传递半径,但它不起作用,以及使用 for 循环传递值。

任何想法?

python matplotlib heatmap python-3.x folium

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

如何使用 python 将混淆矩阵记录到 azureml 平台

你好,Stackoverflowers,

我正在使用 azureml,我想知道是否可以记录我正在训练的 xgboost 模型的混淆矩阵以及我已经记录的其他指标。这是我正在使用的代码示例:

from azureml.core.model import Model
from azureml.core import Workspace
from azureml.core.experiment import Experiment
from azureml.core.authentication import ServicePrincipalAuthentication
import json

with open('./azureml.config', 'r') as f:
    config = json.load(f)

svc_pr = ServicePrincipalAuthentication(
   tenant_id=config['tenant_id'],
   service_principal_id=config['svc_pr_id'],
   service_principal_password=config['svc_pr_password'])


ws = Workspace(workspace_name=config['workspace_name'],
                        subscription_id=config['subscription_id'],
                        resource_group=config['resource_group'],
                        auth=svc_pr)

y_pred = model.predict(dtest)

acc = metrics.accuracy_score(y_test, (y_pred>.5).astype(int))
run.log("accuracy",  acc)
f1 = metrics.f1_score(y_test, (y_pred>.5).astype(int), average='binary')
run.log("f1 score",  f1)


cmtx = metrics.confusion_matrix(y_test,(y_pred>.5).astype(int))
run.log_confusion_matrix('Confusion matrix', cmtx)
Run Code Online (Sandbox Code Playgroud)

上面的代码会引发此类错误:

TypeError: Object of type ndarray is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我已经尝试将矩阵转换为更简单的矩阵,但在我记录它的“手动”版本之前发生了另一个错误(cmtx = [[30000, …

python azure confusion-matrix xgboost azure-machine-learning-service

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