PandasError: конструктор DataFrame вызван неправильно - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь преобразовать некоторые значения в фрейм данных. Для этого я использовал следующий код:

import pandas as pd
import numpy as np

k = 5
N = 8

d = ({'Time' : np.random.randint(k, k + 100 , size=N),
    'Events' : ['ABC','DEF','GHI','JKL','ABC','DEF','GHI','JKL'],
    'Number1' : ['xx','xx',1,'xx','xx','xx',2,'xx'],
    'Number2' : [1,1,'xx',1,'xx',2,'xx',2]}),

df = pd.DataFrame(data=d)

Однако это приводит к коду ошибки PandasError: DataFrame constructor not properly called!.

Я пытался изменить код на df = pd.DataFrame(eval(d)), но получил ту же ошибку?

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Как у вас есть, d - это кортеж:

>>> type(d)
<class 'tuple'>

Но первый элемент - это диктат:

>>> type(d[0])
<class 'dict'>

так что вы можете сделать:

pd.DataFrame(data=d[0])

Что возвращает:

  Events Number1 Number2  Time
0    ABC      xx       1    77
1    DEF      xx       1    39
2    GHI       1      xx    15
3    JKL      xx       1    21
4    ABC      xx      xx    21
5    DEF      xx       2    64
6    GHI       2      xx    84
7    JKL      xx       2    60
0 голосов
/ 27 апреля 2018

У вас есть опечатка

d = ({'Time' : np.random.randint(k, k + 100 , size=N),
    'Events' : ['ABC','DEF','GHI','JKL','ABC','DEF','GHI','JKL'],
    'Number1' : ['xx','xx',1,'xx','xx','xx',2,'xx'],
    'Number2' : [1,1,'xx',1,'xx',2,'xx',2]})# used to have comma here
df = pd.DataFrame(data=d)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...