前提・実現したいこと
過去の質問
複数の試行から得られたデータの標準偏差と標準誤差を求める方法についてでいただいた回答に沿って、
基礎統計量を求めるコードを実行しましたが、1重と2重の角かっこで定義されるリストにおいて
処理結果が異なるという問題があります。
発生している問題・エラーメッセージ
2重角かっこの場合は以下のエラーが出て、基礎統計量を求められません。
2重角かっこのリストは、外部からデータを読み込んでリストに入れているので生成されるようです。
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-26-3ac682c254fa> in <module>() ----> 1 print(df.describe()) /Users/username/anaconda/lib/python3.6/site-packages/pandas/core/generic.py in describe(self, percentiles, include, exclude) 5266 data = self.select_dtypes(include=include, exclude=exclude) 5267 -> 5268 ldesc = [describe_1d(s) for _, s in data.iteritems()] 5269 # set a convenient order for rows 5270 names = [] /Users/username/anaconda/lib/python3.6/site-packages/pandas/core/generic.py in <listcomp>(.0) 5266 data = self.select_dtypes(include=include, exclude=exclude) 5267 -> 5268 ldesc = [describe_1d(s) for _, s in data.iteritems()] 5269 # set a convenient order for rows 5270 names = [] /Users/username/anaconda/lib/python3.6/site-packages/pandas/core/generic.py in describe_1d(data) 5249 return describe_numeric_1d(data) 5250 else: -> 5251 return describe_categorical_1d(data) 5252 5253 if self.ndim == 1: /Users/username/anaconda/lib/python3.6/site-packages/pandas/core/generic.py in describe_categorical_1d(data) 5223 def describe_categorical_1d(data): 5224 names = ['count', 'unique'] -> 5225 objcounts = data.value_counts() 5226 count_unique = len(objcounts[objcounts != 0]) 5227 result = [data.count(), count_unique] /Users/username/anaconda/lib/python3.6/site-packages/pandas/core/base.py in value_counts(self, normalize, sort, ascending, bins, dropna) 949 from pandas.core.algorithms import value_counts 950 result = value_counts(self, sort=sort, ascending=ascending, --> 951 normalize=normalize, bins=bins, dropna=dropna) 952 return result 953 /Users/username/anaconda/lib/python3.6/site-packages/pandas/core/algorithms.py in value_counts(values, sort, ascending, normalize, bins, dropna) 376 else: 377 # ndarray path. pass original to handle DatetimeTzBlock --> 378 keys, counts = _value_counts_arraylike(values, dropna=dropna) 379 380 from pandas import Index, Series /Users/username/anaconda/lib/python3.6/site-packages/pandas/core/algorithms.py in _value_counts_arraylike(values, dropna) 444 values = _ensure_object(values) 445 mask = isnull(values) --> 446 keys, counts = htable.value_count_object(values, mask) 447 if not dropna and mask.any(): 448 keys = np.insert(keys, 0, np.NaN) pandas/hashtable.pyx in pandas.hashtable.value_count_object (pandas/hashtable.c:21322)() pandas/hashtable.pyx in pandas.hashtable.value_count_object (pandas/hashtable.c:21057)() TypeError: unhashable type: 'list'
該当のソースコード
2重角かっこの場合
python
1import numpy as np 2import pandas as pd 3 4import numpy as np 5import pandas as pd 6A= pd.read_table(“data.txt", header=None) 7AA = A.values.tolist() 8#BB~EEまで省略 9 10AA = [[2,5,6,6,8,9,9,10]] 11BB = [[2,5,6,6,8,8,10,16]] 12CC = [[1,2,4,5,7,13,15,13]] 13DD = [[3,5,6,7,9,10,10,11]] 14EE = [[3,5,8,10,11,12,13,10]] 15df = pd.DataFrame({'AA':AA, 'BB':BB, 'CC':CC, 'DD':DD, 'EE':EE})
1重角かっこの場合
python
1import numpy as np 2import pandas as pd 3A = [2,5,6,6,8,9,9,10] 4B = [2,5,6,6,8,8,10,16] 5C = [1,2,4,5,7,13,15,13] 6D = [3,5,6,7,9,10,10,11] 7E = [3,5,8,10,11,12,13,10] 8df = pd.DataFrame({'A':A, 'B':B, 'C':C, 'D':D, 'E':E}) 9print(df.describe()) 10# A B C D E 11#count 8.000000 8.000000 8.000000 8.000000 8.000000 12#mean 6.875000 7.625000 7.500000 7.625000 9.000000 13#std 2.642374 4.138236 5.451081 2.825269 3.464102 14#min 2.000000 2.000000 1.000000 3.000000 3.000000 15#25% 5.750000 5.750000 3.500000 5.750000 7.250000 16#50% 7.000000 7.000000 6.000000 8.000000 10.000000 17#75% 9.000000 8.500000 13.000000 10.000000 11.250000 18#max 10.000000 16.000000 15.000000 11.000000 13.000000
試したこと
1重と2重の角かっこは同じ型であることを確認
type(A) list type(AA) list
補足情報(FW/ツールのバージョンなど)
python3.6

回答1件
あなたの回答
tips
プレビュー