2017-01-16 4 views
0

Ich bin ein Neuling für Python. Derzeit läuft 3.5.2.Drucken Dataframe Name

Ich möchte eine Funktion, um den Namen eines Pandas DataFrame zu erfassen, dass es übergeben wurde.

Anstatt den Dataframe-Inhalt zu drucken, wenn ich meine Funktion ausführe, wie in meinem Beispiel unten, gibt es eine Möglichkeit, den Dataframe-Namen (d. H. "Df") zu erhalten?

Vielen Dank für alle Anregungen

#### Test Code #### 
# Import pandas module 
import pandas as pd 

# Create DataFrame 
df = pd.DataFrame({"A":[1,2,3], "B":[10,20,30]}) 

# Define Function 
def test(data): 
    print("Dataframe Name is: %s" % data) 
    print(data.describe()) 

# Run Function 
test(df) 

Antwort

0

nennen Sie einfach den Datenrahmen wie folgt und Ihre Funktion ändern.

import pandas as pd 

# Create DataFrame 
df = pd.DataFrame({"A":[1,2,3], "B":[10,20,30]}) 
df.name = 'mydf' 

# Define Function 
def test(data): 
    print("Dataframe Name is: %s" % df.name) 
    print(data.describe()) 

Dataframe Name is: mydf 
     A  B 
count 3.0 3.0 
mean 2.0 20.0 
std 1.0 10.0 
min 1.0 10.0 
25% 1.5 15.0 
50% 2.0 20.0 
75% 2.5 25.0 
max 3.0 30.0 
    # Run Function 
    test(df) 
+0

Vielen Dank. Wirklich zu schätzen die Antwort. In der Tat hatte ich die Lösung, die Sie online vorgeschlagen haben, gesehen, aber sie hat meine Bedürfnisse nicht ganz erfüllt. Die Herausforderung für mich bestand darin, den DataFrame-Namen von der Funktion zu lesen. @sgDysregulation adressiert dies mit ihrer obigen Lösung. –

+0

Gut zu hören @sgDysregulation half Ihnen, die erforderliche Ausgabe mit der anderen Lösung zu erhalten. – ade1e

4

Verwenden globals() und nach dem Objekt sucht der lokale Variable data

#### Test Code #### 
# Import pandas module 
import pandas as pd 

# Create DataFrame 
df = pd.DataFrame({"A":[1,2,3], "B":[10,20,30]}) 

# Define Function 
def test(data): 
    name =[x for x in globals() if globals()[x] is data][0] 
    print("Dataframe Name is: %s" % name) 
    print(data.describe()) 

# Run Function 
test(df) 

Das Ergebnis entspricht, wird sein:

Dataframe Name is: df 
     A  B 
count 3.0 3.0 
mean 2.0 20.0 
std 1.0 10.0 
min 1.0 10.0 
25% 1.5 15.0 
50% 2.0 20.0 
75% 2.5 25.0 
max 3.0 30.0 
+1

Ja. Perfekt. Vielen Dank. –

Verwandte Themen