pandas Python函数:是否将参数作为字符串和引用传递?

5ssjco0h  于 2023-02-07  发布在  Python
关注(0)|答案(3)|浏览(133)

我脑子里有一个结。我甚至不知道该搜索什么。(或者如何表达我的标题)
我想做以下几点:我想写一个函数,它接受一个以. csv命名的项,但同时我想用它命名一个df。
就像这样:

def read_data_into_df(name):
     df_{name} = pd.read_csv(f"file_{name}.csv")

当然df_{name}部分不起作用。但我希望你能明白。
这不需要硬编码就可以实现吗?
谢谢!

xghobddn

xghobddn1#

IIUC,您可以使用globals

def read_data_into_df(name):
     globals()[f"df_{name}"] = pd.read_csv(f"file_{name}.csv")
kq0g1dla

kq0g1dla2#

如果我是你,我会创建一个字典和键

dictionary = f"df_{name}: {whatever_you_want}"
ljsrvy3e

ljsrvy3e3#

如果只有几个 Dataframe ,只需接受最小代码重复:

def read_data_into_df(name):
     return pd.read_csv(f"file_{name}.csv")

...

df_ham = read_data_into_df('ham')
df_spam = read_data_into_df('spam')
df_bacon = read_data_into_df('bacon')

...

# Use df_ham, df_spam and df_bacon

如果有很多 Dataframe ,或者生成了精确的 Dataframe ,我会使用字典来跟踪 Dataframe :

dataframes = {}

def read_data_into_df(name):
     return pd.read_csv(f"file_{name}.csv")

...

for name in ['ham', 'spam', 'bacon']:
    dataframes[name] = read_data_into_df('name')
...

# Use dataframes['ham'], dataframes['spam'] and dataframes['bacon']
# Or iterate over dataframes.values() or dataframes.items()!

相关问题