770 Stimmen

Der Aufbau eines pandas DataFrames aus Werten in Variablen ergibt "ValueError: Wenn alle Skalarwerte verwendet werden, müssen Sie einen Index übergeben"

Dies mag eine einfache Frage sein, aber ich kann nicht herausfinden, wie das geht. Angenommen, ich habe zwei Variablen wie folgt.

a = 2
b = 3

Ich möchte ein DataFrame daraus erstellen:

df2 = pd.DataFrame({'A':a,'B':b})

Dies erzeugt einen Fehler:

ValueError: Wenn ausschließlich skalare Werte verwendet werden, müssen Sie einen Index übergeben

Ich habe auch das versucht:

df2 = (pd.DataFrame({'a':a,'b':b})).reset_index()

Das liefert die gleiche Fehlermeldung.

1144voto

DSM Punkte 317386

Die Fehlermeldung besagt, dass Sie einen Index übergeben müssen, wenn Sie skalare Werte übergeben. Sie können also entweder keine skalaren Werte für die Spalten verwenden - z. B. eine Liste verwenden:

>>> df = pd.DataFrame({'A': [a], 'B': [b]})
>>> df
   A  B
0  2  3

oder skalare Werte verwenden und einen Index übergeben:

>>> df = pd.DataFrame({'A': a, 'B': b}, index=[0])
>>> df
   A  B
0  2  3

226voto

NewBie Punkte 3134

Sie können versuchen, Ihr Wörterbuch in eine Liste zu verpacken:

my_dict = {'A':1,'B':2}
pd.DataFrame([my_dict])

   A  B
0  1  2

110voto

fAX Punkte 1411

Sie können auch pd.DataFrame.from_records verwenden, was praktischer ist, wenn Sie das Wörterbuch bereits zur Hand haben:

df = pd.DataFrame.from_records([{ 'A':a,'B':b }])

Sie können auch den Index setzen, wenn Sie möchten, durch:

df = pd.DataFrame.from_records([{ 'A':a,'B':b }], index='A')

83voto

MLguy Punkte 1776

Sie müssen zunächst eine Pandas-Serie erstellen. Der zweite Schritt besteht darin, die Pandas-Serie in ein Pandas-DataFrame zu konvertieren.

import pandas as pd
data = {'a': 1, 'b': 2}
pd.Series(data).to_frame()

Sie können sogar einen Spaltennamen angeben.

pd.Series(data).to_frame('ColumnName')

17voto

Rob Punkte 342

Vielleicht bietet Series alle Funktionen, die Sie benötigen:

pd.Series({'A':a,'B':b})

DataFrame kann als Sammlung von Series betrachtet werden, daher können Sie:

  • Mehrere Series zu einem DataFrame zusammenfügen (wie hier beschrieben)

  • Eine Series-Variable in ein vorhandenes DataFrame einfügen (Beispiel hier)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X