Esta puede ser una pregunta simple, pero no puedo entender cómo hacerlo. Digamos que tengo dos variables de la siguiente manera.
a = 2
b = 3
Quiero construir un DataFrame a partir de esto:
df2 = pd.DataFrame({'A':a,'B':b})
Esto genera un error:
ValueError: si usa todos los valores escalares, debe pasar un índice
Intenté esto también:
df2 = (pd.DataFrame({'a':a,'b':b})).reset_index()
Esto da el mismo mensaje de error.
index=0
, pero eso puede conducir a un mal uso accidental (pensar que un solo diccionario de alguna manera puede crear un marco de datos de varias filas)También puede usar
pd.DataFrame.from_records
cuál es más conveniente cuando ya tiene el diccionario en la mano:También puede establecer el índice, si lo desea, por:
fuente
Primero debes crear una serie de pandas. El segundo paso es convertir la serie de pandas en un marco de datos de pandas.
Incluso puede proporcionar un nombre de columna.
fuente
pd.Series(data).to_frame('ColumnName')
es más corto, aunque este equivalente es quizás más directo:pd.DataFrame.from_dict(data, orient='index', columns=['ColumnName'])
Puede intentar ajustar su diccionario a la lista
my_dict = {'A':1,'B':2}
pd.DataFrame([my_dict])
fuente
Quizás Series le proporcionaría todas las funciones que necesita:
DataFrame puede considerarse como una colección de Series, por lo tanto, puede:
Concatene múltiples series en un marco de datos (como se describe aquí )
Agregue una variable de serie en el marco de datos existente ( ejemplo aquí )
fuente
Debe proporcionar iterables como los valores para las columnas Pandas DataFrame:
fuente
Tuve el mismo problema con las matrices numpy y la solución es aplanarlas:
fuente
Si tiene la intención de convertir un diccionario de escalares, debe incluir un índice:
Aunque el índice no es necesario para un diccionario de listas, la misma idea se puede ampliar a un diccionario de listas:
Por supuesto, para el diccionario de listas, puede construir el marco de datos sin un índice:
fuente
Tu podrías intentar:
De la documentación sobre el argumento 'orientar': si las claves del dict aprobado deben ser las columnas del DataFrame resultante, pase 'columnas' (predeterminado). De lo contrario, si las claves deben ser filas, pase 'index'.
fuente
code
palabras muy importante estar en negrita , onces menos importantes cursiva utilizar también las listas si es necesarioPandas mágicos en el trabajo. Toda la lógica está fuera.
El mensaje de error
"ValueError: If using all scalar values, you must pass an index"
dice que debe pasar un índice.Esto no significa necesariamente que pasar un índice haga que los pandas hagan lo que quieres que haga
Cuando pasa un índice, los pandas tratarán las claves del diccionario como nombres de columna y los valores como lo que debe contener la columna para cada uno de los valores del índice.
Pasando un índice más grande:
Por lo general, un marco de datos genera automáticamente un índice cuando no se proporciona ninguno. Sin embargo, los pandas no saben cuántas filas de
2
y3
qué quieres. Sin embargo, puedes ser más explícito al respectoSin embargo, el índice predeterminado está basado en 0.
Siempre recomendaría pasar un diccionario de listas al constructor del marco de datos al crear marcos de datos. Es más fácil de leer para otros desarrolladores. Pandas tiene muchas advertencias, no hagas que otros desarrolladores tengan que tener expertos en todas ellas para leer tu código.
fuente
la entrada no tiene que ser una lista de registros; también puede ser un diccionario único:
Lo que parece ser equivalente a:
fuente
Esto se debe a que un DataFrame tiene dos dimensiones intuitivas: las columnas y las filas.
Solo está especificando las columnas con las teclas del diccionario.
Si solo desea especificar datos unidimensionales, ¡use una Serie!
fuente
Convertir diccionario a marco de datos
Dar un nuevo nombre a la columna
fuente
Si tiene un diccionario, puede convertirlo en un marco de datos de pandas con la siguiente línea de código:
fuente
Simplemente pase el dict en una lista:
fuente