我是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)
使用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)
只需按如下方式命名数据框,然后修改您的函数即可。
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)
| 归档时间: |
|
| 查看次数: |
5180 次 |
| 最近记录: |