我想通过将它们传递给函数来写入hdf pd.DataFrame
的各种store
。有没有办法以编程方式生成基于任何给定key
的变量名称的dataframe
名称?
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)
答案 0 :(得分:1)
你应该像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)
这样效率更高:它只需要打开一次文件就可以编写任意数量的数组。并且您可以使用与变量不同的名称。
您可以避免使用dict命名变量两次:
dfs = {
'iris': pd.DataFrame(datasets.load_iris().data),
'boston': pd.DataFrame(datasets.load_boston().data),
}
save_to_hdf('test.h5', **dfs)