Python 打印数据帧名称

Python 打印数据帧名称,python,pandas,Python,Pandas,我是Python的新手。目前正在运行3.5.2 我希望函数能够捕获已传递的数据帧的名称 与我在运行函数时打印数据框内容不同(如下面的示例所示),是否有方法获取数据框名称(即“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

我是Python的新手。目前正在运行3.5.2

我希望函数能够捕获已传递的数据帧的名称

与我在运行函数时打印数据框内容不同(如下面的示例所示),是否有方法获取数据框名称(即“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)

只需按如下方式命名dataframe,并修改您的函数

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)
使用
globals()
并搜索与局部变量
数据匹配的对象

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

非常感谢。非常感谢您的回复。事实上,我在网上看到了你提出的解决方案,但它并不完全满足我的需要。我面临的挑战是从函数中读取数据帧名称@sgDysregulation通过上面的解决方案解决了这个问题。很高兴听到@sgDysregulation帮助您通过另一个解决方案获得了所需的输出。是的。完美的谢谢。如果我把这段代码放在一个类和不同的文件中,那么我将从索引错误中得到列表。有什么解决办法吗?