Описательная статистика по строкам текстового файла с использованием панд - PullRequest
0 голосов
/ 26 сентября 2018

Я читаю текстовый файл, используя Pandas в Python.Я использую Python 2.7.Набор данных, используемый в этом вопросе, связан с вопросом, который я задавал до здесь .Чтобы быть точным, первые две строки и первый столбец моих данных содержат текстовую информацию.Ниже приведен снимок усеченной версии моего набора данных.enter image description here

Файл данных можно найти здесь .Я использую полезные ответы, данные здесь , чтобы загрузить набор данных (df = pd.read_csv('dum.txt',sep='\t', header=[0,1], index_col=0)).

Я хочу получить описательную статистику моего кадра данных панд по строкам, а не по столбцам.Я попытался использовать df.describe(), но он дает мне описательную статистику по столбцам.Я взглянул на ответы, данные в этом вопросе, но при использовании ответов, предложенных в этой ссылке, я получаю следующую ошибку:

TypeError: ('unbound method describe() must be called with DataFrame instance as first argument (got Series instance instead)', u'occurred at index foxq1')

Как получить описательную статистику, используяПанды для числовых записей в каждой строке для набора данных, который у меня есть?Заранее спасибо.


После нескольких комментариев я включаю фактический код, который я использую, и сообщение об ошибке:

Фактический код это:

df = pd.read_csv('dum.txt',sep='\t', header=[0,1], index_col=0)
df.apply(pd.DataFrame.describe, axis=1)

Сообщение об ошибке :

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-20-0d7a5fde0f42> in <module>()
----> 1 df.apply(pd.DataFrame.describe, axis=1)
      2 #df.apply(pd.DataFrame.describe, axis=1)

/Users/LG/anaconda2/lib/python2.7/site-packages/pandas/core/frame.pyc in apply(self, func, axis, broadcast, raw, reduce, args, **kwds)
   4260                         f, axis,
   4261                         reduce=reduce,
-> 4262                         ignore_failures=ignore_failures)
   4263             else:
   4264                 return self._apply_broadcast(f, axis)

/Users/LG/anaconda2/lib/python2.7/site-packages/pandas/core/frame.pyc in _apply_standard(self, func, axis, ignore_failures, reduce)
   4356             try:
   4357                 for i, v in enumerate(series_gen):
-> 4358                     results[i] = func(v)
   4359                     keys.append(v.name)
   4360             except Exception as e:

TypeError: ('unbound method describe() must be called with DataFrame instance as first argument (got Series instance instead)', u'occurred at index object1')

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Вы можете попытаться использовать numpy для получения большей части статистики по строкам:

df = pd.read_csv('dum.txt',sep='\t', header=[0,1], index_col=0)
print df 

Type      T1   T2   T3   T4   T5   T6   T7
Tag     Tag1 Tag1 Tag1 Tag5 Tag5 Tag6 Tag6
object1  1.1  2.1  3.1  4.1  5.1  6.1  7.1
object2  1.2  2.2  3.2  4.2  5.2  6.2  7.2
object3  1.3  2.3  3.3  4.3  5.3  6.3  7.3
object4  1.4  2.4  3.4  4.4  5.4  6.4  7.4
object5  1.5  2.5  3.5  4.5  5.5  6.5  7.5
object6  1.6  2.6  3.6  4.6  5.6  6.6  7.6
object7  1.7  2.7  3.7  4.7  5.7  6.7  7.7
object8  1.8  2.8  3.8  4.8  5.8  6.8  7.8

data = df.values
data_mean = np.mean(data, axis=1)
data_std = np.std(data, axis=1)
data_min = np.min(data, axis=1)
data_max = np.max(data, axis=1)

print data_mean 

[ 4.1  4.2  4.3  4.4  4.5  4.6  4.7  4.8]

print data_std

[ 2.  2.  2.  2.  2.  2.  2.  2.]

print data_min

[ 1.1  1.2  1.3  1.4  1.5  1.6  1.7  1.8]

print data_max

[ 7.1  7.2  7.3  7.4  7.5  7.6  7.7  7.8]
0 голосов
/ 26 сентября 2018

Из вопроса , на который вы ссылались, вы можете просто использовать этот код (другими словами, применить описание вдоль строк):

df.apply(pd.DataFrame.describe, axis=1)

И вы получите следующий результат:

         count  mean       std  min  25%  50%  75%  max
object1    5.0   3.1  1.581139  1.1  2.1  3.1  4.1  5.1
object2    5.0   3.2  1.581139  1.2  2.2  3.2  4.2  5.2
object3    5.0   3.3  1.581139  1.3  2.3  3.3  4.3  5.3
object4    5.0   3.4  1.581139  1.4  2.4  3.4  4.4  5.4
object5    5.0   3.5  1.581139  1.5  2.5  3.5  4.5  5.5
object6    5.0   3.6  1.581139  1.6  2.6  3.6  4.6  5.6
object7    5.0   3.7  1.581139  1.7  2.7  3.7  4.7  5.7
object8    5.0   3.8  1.581139  1.8  2.8  3.8  4.8  5.8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...