Ошибка типа и значения при печати pandas .DataFrame - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть список списков:

[['-49.20960' '35.91628' '-5.33521' '0.28950' '-0.00648' '0.00005' '1265']
 ['980.39881' '-874.95436' '153.33177' '-9.66707' '0.24657' '-0.00189'
  '119']
 ['-1824.01669' '973.09890' '-83.42090' '0.61490' '0.08083' '-0.00103'
  '240']
 ['189.33856' '-124.41292' '16.57153' '-0.77300' '0.01374' '-0.00007'
  '464']
 ['-3576.38367' '2577.36853' '-363.74838' '17.56082' '-0.27816' '0.00146'
  '206']
 ['-2988.77595' '1610.00929' '-148.44053' '2.44854' '0.07572' '-0.00114'
  '94']
 ['133.80111' '-86.16133' '11.20358' '-0.55227' '0.01288' '-0.00009' '25']
 ['1373.10186' '-1031.07001' '157.43685' '-8.66944' '0.19014' '-0.00128'
  '281']]

, который при pandas читается как dataframe, и я хочу построить:

  fdata = pandas.DataFrame(data=coffs)  # Coffs is the list shown above
  fdata.columns = pname
  print(fdata)
  fdata.plot(kind='line', subplots=True, layout=(3, 2), sharex=False, sharey=False)
  plt.show()
  scatter_matrix(fdata)
  plt.show()

Который печатает фрейм данных fdata правильно, как:

            c0           c1          c2        c3        c4        c5        C6
0    -49.20960     35.91628    -5.33521   0.28950  -0.00648   0.00005      1265
1    980.39881   -874.95436   153.33177  -9.66707   0.24657  -0.00189       119
2  -1824.01669    973.09890   -83.42090   0.61490   0.08083  -0.00103       240
3    189.33856   -124.41292    16.57153  -0.77300   0.01374  -0.00007       464
4  -3576.38367   2577.36853  -363.74838  17.56082  -0.27816   0.00146       206
5  -2988.77595   1610.00929  -148.44053   2.44854   0.07572  -0.00114        94
6    133.80111    -86.16133    11.20358  -0.55227   0.01288  -0.00009        25
7   1373.10186  -1031.07001   157.43685  -8.66944   0.19014  -0.00128       281

Строка fdata.plot(kind='line', subplots=True, layout=(3, 2), sharex=False, sharey=False)

выдает ошибку:

TypeError: no numeric data to plot

, а строка scatter_matrix(fdata) выдает ошибку:

ValueError: Number of columns must be > 0, not 0

Что здесь не так?

1 Ответ

1 голос
/ 18 апреля 2020

Большая подсказка в вашем сообщении об ошибке.

TypeError: no numeric data to plot

В вашем списке есть все строки, но для кода построения нужны номера. Таким образом, перед тем, как ваши команды построения, вы должны преобразовать все.

fdata = fdata.astype(float)

Тогда вы готовы к построению. Чтобы все работало полностью, мне также пришлось изменить макет с (3, 2) на (4, 2), чтобы вместить 7 столбцов с c0 до c6.

fdata.plot(kind='line', subplots=True, layout=(4, 2), sharex=False, sharey=False)

working plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...