python 将变量名传递给函数
python passing variable name to function
我有各种 pd.DataFrame
想通过将它们传递给函数来写入 hdf store
。有没有一种方法可以根据任何给定 dataframe
的变量名称以编程方式生成 key
名称?
from sklearn import datasets
import pandas as pd
df1 = pd.DataFrame(datasets.load_iris().data)
df2 = pd.DataFrame(datasets.load_boston().data)
def save_to_hdf(df1):
with pd.HDFStore('test.h5') as store:
store.put('df1', df1)
save_to_hdf(df1)
你应该像 np.savez()
那样做:
def save_to_hdf(filename, **kwargs):
with pd.HDFStore(filename) as store:
for name, df in kwargs.items():
store.put(name, df)
save_to_hdf('test.h5', df1=df1, another_name=df2)
这样效率更高:只需要打开文件一次,就可以写入任意数量的数组。您可以使用与变量不同的名称。
您可以避免使用字典命名变量两次:
dfs = {
'iris': pd.DataFrame(datasets.load_iris().data),
'boston': pd.DataFrame(datasets.load_boston().data),
}
save_to_hdf('test.h5', **dfs)
我有各种 pd.DataFrame
想通过将它们传递给函数来写入 hdf store
。有没有一种方法可以根据任何给定 dataframe
的变量名称以编程方式生成 key
名称?
from sklearn import datasets
import pandas as pd
df1 = pd.DataFrame(datasets.load_iris().data)
df2 = pd.DataFrame(datasets.load_boston().data)
def save_to_hdf(df1):
with pd.HDFStore('test.h5') as store:
store.put('df1', df1)
save_to_hdf(df1)
你应该像 np.savez()
那样做:
def save_to_hdf(filename, **kwargs):
with pd.HDFStore(filename) as store:
for name, df in kwargs.items():
store.put(name, df)
save_to_hdf('test.h5', df1=df1, another_name=df2)
这样效率更高:只需要打开文件一次,就可以写入任意数量的数组。您可以使用与变量不同的名称。
您可以避免使用字典命名变量两次:
dfs = {
'iris': pd.DataFrame(datasets.load_iris().data),
'boston': pd.DataFrame(datasets.load_boston().data),
}
save_to_hdf('test.h5', **dfs)