小编Dav*_*Ws.的帖子

将数据从 Python 列表和字典写入 CSV

假设mydict基于每个列表项是唯一的:

 mylist = ['li1', 'li2']
 mydict =  {'key1': 'value1','key2': 'value2','key3': 'value3}
Run Code Online (Sandbox Code Playgroud)

我想在一个CSV文件中写这个结构:

ListItem, key1, key2, key3
li1, value1, value2, value3
li2, value1, value2, value3
Run Code Online (Sandbox Code Playgroud)

这是我如何尝试这样做的示例;但是我的代码每次迭代都会覆盖第一行,我不知道如何在第一列中编写列表项。请你帮我一下好吗?

import pandas as pd
import random


def CreateDict(li):
    dict = {}
    dict['x'] = random.randrange(1, li)  #25
    dict['y'] = random.randrange(1, li)  #27
    print(dict)
    return dict

mylist = [10, 20, 30]
for li in mylist:
    mydict = CreateDict(li)
    df = pd.DataFrame([mydict])
    df.to_csv('test.csv', index=False)
Run Code Online (Sandbox Code Playgroud)

我得到这个作为输出:

x,y
25,27
Run Code Online (Sandbox Code Playgroud)

python csv dictionary list pandas

5
推荐指数
1
解决办法
54
查看次数

使用 scikit-learn 计算 AUC 的正确方法是什么?

我注意到以下两个代码的结果是不同的。

#1
metrics.plot_roc_curve(classifier, X_test, y_test, ax=plt.gca())


#2
metrics.plot_roc_curve(classifier, X_test, y_test, ax=plt.gca(), label=clsname + ' (AUC = %.2f)' % roc_auc_score(y_test, y_predicted))
Run Code Online (Sandbox Code Playgroud)

那么,哪种方法是正确的呢?

我添加了一个简单的可重现示例:

from sklearn.metrics import roc_auc_score
from sklearn import metrics
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.datasets import load_breast_cancer

data = load_breast_cancer()
X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=12)

svclassifier = SVC(kernel='rbf')
svclassifier.fit(X_train, y_train)
y_predicted = svclassifier.predict(X_test)

print('AUC = %.2f' % roc_auc_score(y_test, y_predicted))  #1

metrics.plot_roc_curve(svclassifier, …
Run Code Online (Sandbox Code Playgroud)

python metrics classification scikit-learn auc

5
推荐指数
1
解决办法
7310
查看次数

标签 统计

python ×2

auc ×1

classification ×1

csv ×1

dictionary ×1

list ×1

metrics ×1

pandas ×1

scikit-learn ×1