【问题标题】:plt.suptitle : TypeError: can only concatenate tuple (not "str") to tupleplt.suptitle :TypeError:只能将元组(不是“str”)连接到元组
【发布时间】:2020-05-05 18:51:00
【问题描述】:

这段代码在一个地方工作,但在另一个地方抛出错误,不知道为什么我会遇到以下错误:

plt.suptitle plt.suptitle(dataset.columns[i] + '(xyz)', fontsize=10)

TypeError:只能将元组(不是“str”)连接到元组

import numpy as np
import matplotlib.pyplot as plt

dataset = df
dfsize = dataset[df.columns[0]].size
x = []
for i in range(dfsize):
    x.append(i)

dataset.shape
# dataset.dropna(inplace=True)
dataset.columns.values
var = ""
for i in range(dataset.shape[1]):  ## 1 is for column, dataset.shape[1] calculate length of col

    y = dataset[dataset.columns[i]].values
    y = y.astype(float)
    y = y.reshape(-1, 1)
    y.shape
    from sklearn.impute import SimpleImputer

    missingvalues = SimpleImputer(missing_values=np.nan, strategy='mean', verbose=0)
    missingvalues = missingvalues.fit(y)
    y = missingvalues.transform(y[:, :])

    from sklearn.preprocessing import LabelEncoder, OneHotEncoder
    from sklearn.compose import ColumnTransformer

    labelencoder_x = LabelEncoder()
    x = labelencoder_x.fit_transform(x)

    from scipy.interpolate import *

    p1 = np.polyfit(x, y, 1)
    # from matplotlib.pyplot import *
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt

    plt.figure()
    plt.xticks(x, months, rotation=25,fontsize=8)
    plt.suptitle(dataset.columns[i] + ' (xyz)', fontsize=10)

我认为我的问题是由于错误的数据框:

工作数据框是:

in               month   
AM               April         NaN
                 February    100.0
                 January      99.0

错误的数据框:

                                  Verify the countDays
Assign                  month                         
AD                      April                    48.86
                        February                  4.76
                        January                  14.70

【问题讨论】:

    标签: python python-3.x pandas numpy matplotlib


    【解决方案1】:

    变化:

    plt.suptitle(dataset.columns[i] + ' (xyz)', fontsize=10)
    

    收件人:

    plt.suptitle(dataset.columns[i] + ('xyz',), fontsize=10)
    

    【讨论】:

    • 谢谢,是的,它通过了那个阶段,但是,它停留在另一个地方,例如:var = var + "," + dataset.columns[i]
    【解决方案2】:

    我不得不采取一些不专业的方式来解决这个问题,并通过以下方式解决了。但是,我想知道是否有一些好的方法可以做到这一点。

    我尝试删除第一行,但 datafarme 太糟糕了,我不知道为什么第一行没有被删除,而且它有一些奇怪的行为。

    dff3=dff.groupby(['Assign','month'])[['Verify the countDays']].mean().round(decimals=2)
    dff4=dff.groupby(['Assign','month'])[['Verify the countDays']].mean().round(decimals=2)
    dff5=(dff3['Verify the countDays']/dff3['Verify the countDays'])+(dff3['Verify the countDays'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-13
      • 2022-01-11
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多