Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DataFrame具有浮点值,但对其调用_csv()会生成一个空的csv_Python_Csv_Pandas_Dataframe - Fatal编程技术网

Python DataFrame具有浮点值,但对其调用_csv()会生成一个空的csv

Python DataFrame具有浮点值,但对其调用_csv()会生成一个空的csv,python,csv,pandas,dataframe,Python,Csv,Pandas,Dataframe,考虑我的以下代码: columns = ['tf-idf','bag_of_words'] index = ['MultinomialNB', 'LinearSVC', 'LogisticRegression', \ 'DecisionTreeClassifier','MLPClassifier'] df = pd.DataFrame(columns = columns, index = index) estimators_dict = OrderedDict([('Multi

考虑我的以下代码:

columns = ['tf-idf','bag_of_words']
index = ['MultinomialNB', 'LinearSVC', 'LogisticRegression', \
        'DecisionTreeClassifier','MLPClassifier']
df = pd.DataFrame(columns = columns, index = index)

estimators_dict = OrderedDict([('MultiNomialNB', MultinomialNB()), \
                    ('LinearSVC', LinearSVC()), \
                    ('LogisticRegression', LogisticRegression()), \
                    ('DecisionTreeClassifier', DecisionTreeClassifier()), \
                    ('MLPClassifier',MLPClassifier(max_iter=10))])

transformers_dict = OrderedDict([('tf-idf', TfidfVectorizer(max_features=500)), \
                                    ('bag_of_words', CountVectorizer())]) 
steps = []

for transformer_name, transformer in transformers_dict.items():         
    steps.append((transformer_name, transformer))

    for estimator_name, estimator in estimators_dict.items():           
        steps.append((estimator_name, estimator))
        model = Pipeline(steps)
        predicted_labels = cross_val_predict(model, all_features,all_labels, cv=5)

        # f1 is float       
        f1 = f1_score(all_labels, predicted_labels, average = 'weighted')
        # writing to DataFrame
        df[transformer_name][estimator_name] = round(f1,2)          
        # This correctly shows the value which just written
        print(str(df[str(transformer_name)][str(estimator_name)]))  # line a 

        del steps[1]    

    del steps[0]        

# but writing to csv create a file with no values whatsoever
df.to_csv('classification_results_f1score') # line b
快速小上下文:在我的分类任务中,我使用了一组特征变换器和另一组sklearn分类器。我正在运行这两组的所有可能组合,以查看哪种型号的性能最好

我正在计算每个模型的f1分数(浮点值),并将其存储在数据帧中。该值已成功写入数据帧。我可以通过访问它来验证这一点。(a行)

但在所有模型运行结束后(两个for循环结束),当我将数据帧写入csv时,它将生成一个csv,如下所示:

,tf-idf,bag_of_words
MultinomialNB,,
LinearSVC,,
LogisticRegression,,
DecisionTreeClassifier,,
MLPClassifier,,

这里的问题是什么?为什么csv中没有显示值?

如果在
to_csv()
中指定
float_格式
,会发生什么情况?@Khris仍然是一样的。另一方面,为什么不在内部for循环中执行
步骤=[(transformer_name,transformer),(assistator_name,assistator)]
,并使用
df.loc[assistator_name,transformer_name]
而不是
df[][]
。尤其是此
df[][]
可能会导致视图和副本出现一些奇怪的问题。另外,
print(str(df[str(transformer_name)][str(assistor_name)])
包含许多不必要的
str()
调用,在最后说什么
print(df)
来查看
df
是空的,还是
to_csv
是空的wonky@PaleBlueDot我在评论队列中偶然发现了这一点。就我个人而言,我并不觉得这个问题离题,而是投票决定不讨论。尽管如此,我还是建议你克制自己,不要用某种语调发表评论,因为这可能会被负面解读。至于问题本身,您是否尝试模拟数据帧并从中构建CSV?或者可能将f1测量值保存为浮点数,并将
中的十进制精度配置为\u csv
?如果在
到\u csv()
中指定
浮点数格式,会发生什么情况?@Khris仍然是一样的。另一方面,为什么不在内部for循环中执行
步骤=[(变压器名称,变压器),(估计器名称,估计器)]
,并使用
df.loc[estimator\u name,transformer\u name]
代替
df[][]
。尤其是此
df[][]
可能会导致视图和副本出现一些奇怪的问题。另外,
print(str(df[str(transformer_name)][str(assistor_name)])
包含许多不必要的
str()
调用,在最后说什么
print(df)
来查看
df
是空的,还是
to_csv
是空的wonky@PaleBlueDot我在评论队列中偶然发现了这一点。就我个人而言,我并不觉得这个问题离题,而是投票决定不讨论。尽管如此,我还是建议你克制自己,不要用某种语调发表评论,因为这可能会被负面解读。至于问题本身,您是否尝试模拟数据帧并从中构建CSV?或者将f1测量值保存为浮点数,并将
中的十进制精度配置为\u csv