2017-01-16 14 views
0

私はPythonの初心者です。現在実行中3.5.2。データフレーム名を印刷

私は、渡されたpandas DataFrameの名前をキャプチャできるようにしたいと思います。

私の関数を実行するとDataFrameの内容を表示するのではなく、以下の例のようにDataFrameの名前(「df」)を取得する方法がありますか?任意の提案

#### 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) 

答えて

0

ため

おかげで、ちょうど次のようにデータフレームに名前を付け、あなたの関数を変更します。

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

どうもありがとうございました。本当に返事を感謝します。実際に、あなたが提案した解決策を見ていましたが、私のニーズを十分に満たしていませんでした。私の挑戦は、関数からDataFrameの名前を読み取ることでした。 @ sgDysregulationは、上記の解決策でこれに対処しました。 –

+0

@sgDysregulationは、他のソリューションで必要な出力を得るのに役立ちました。 – ade1e

4

使用globals()と結果がなる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) 

ローカル変数に一致するオブジェクトを検索:

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

完璧。ありがとう。 –