打印DataFrame名称

Pet*_*e B 1 python pandas

我是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)
Run Code Online (Sandbox Code Playgroud)

sgD*_*ion 7

使用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)
Run Code Online (Sandbox Code Playgroud)

结果将是:

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
Run Code Online (Sandbox Code Playgroud)


ade*_*e1e 2

只需按如下方式命名数据框,然后修改您的函数即可。

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)
Run Code Online (Sandbox Code Playgroud)