plt.suptitle: TypeError: может только объединить кортеж (не "str") в кортеж - PullRequest
1 голос
/ 05 мая 2020

Этот фрагмент кода работает в одном месте, но выдает ошибку в другом месте, не знаю, почему я столкнулся с этой ошибкой ниже:

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)

i думаю, моя проблема возникает из-за неправильного фрейма данных:

рабочий фрейм данных:

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

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Изменить:

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

Кому:

plt.suptitle(dataset.columns[i] + ('xyz',), fontsize=10)
0 голосов
/ 05 мая 2020

Мне пришлось применить непрофессиональный способ решить эту проблему, выполнив следующие действия. Однако я хотел бы знать, есть ли какой-нибудь хороший способ сделать это.

Я попытался удалить первую строку, но 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'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...