1. ホーム
  2. Python

Pandasの属性エラーです。AttributeError: 'Series' オブジェクトに 'reshape' 属性がない Solution

2022-02-12 13:19:34
<パス

AttributeError: 'Series' オブジェクトに 'reshape' 属性がない Solution

<ブロッククオート

Python 3

w = [1.0 i/k for i in range(k+1)] のようになります。
w = data.describe(percentiles=w)[4:4+k+1] とする。
w[0] = w[0] です。
(1-1e-10)
d2 = pd.cut(data, w, labels=range(k))
kmodel = KMeans(n_clusters=k, n_jobs=4)
kmodel.fit(data.reshape((len(data), 1)))
c = pd.DataFrame(kmodel.cluster_centers_).sort(0)
w = pd.rolling_mean(c, 2).iloc[1:] です。
w = [0]+list(w[0])+[data.max()

上記のコードで、太字の文はエラーになります。

最初の文です。AttributeError: 'Series' オブジェクトには 'reshape' という属性がありません。
2文目 AttributeError: 'DataFrame' オブジェクトには 'sort' 属性がありません。
3文目 AttributeError: モジュール 'pandas' には 'rolling_mean' という属性がありません。

回避策

  1. Seriesオブジェクトをvaluesメソッドでnumpyのndarrayに変換し、そのndarrayのreshapeメソッドを使用する。に変更する。 kmodel.fit(data.values.reshape((len(data), 1)))
  2. ソート方法を次のように変更します。 sort_values メソッドを使用します。
  3. pandas.DataFrame.rolling を使用し、mean()を適用すると、次のようになります。 w = c.rolling(2).mean().iloc[1:]

参考記事
https://blog.csdn.net/qq_36448051/article/details/81592379
https://blog.csdn.net/weixin_39777626/article/details/78760076
https://cloud.tencent.com/developer/ask/153695/answer/266131