如何创建pandas数据帧字典,并将数据帧返回到excel工作表中?
大家好,
我正在学习pandas和python,我想创建一个包含一些数据帧的字典,然后我可以在每个数据帧上运行指标。对于每个唯一的群集名称(其中一列),我想创建一个数据帧(原始数据帧的子集。
然后我希望能够选择它,在其上运行指标,将结果放在一个新的数据帧中,然后使用xlsxwriter python库将原始数据帧(每个子集)放入一个单独的工作表中。
#create dictionary object
c_dict = {}
#get a list of the unique names
c_dict= data.groupby('Cluster').groups
#create a dictionary of dataframes, one for each cluster
for cluster in c_dict.items():
df = data[data['Cluster']==cluster
c_dict[cluster] =df <<< im getting invalid syntax here
#go through the dictionary and create a worksheet and put the dataframe in it.
for k,v in c_dict.items():
dataframe = GetDF(k) <<< creating worksheets and puts the data from the dataframe > worksheet is not working because of invalid syntax when trying to create dataframe dictionary ^^
dataframe.to_excel(writer,sheet_name=k)
writer.save
#get the dataframe from the dictionary,
GetDF(dictionary_key)
return c_dict[dictionary_key]
答案 0 :(得分:4)
我认为这就是你要找的东西。正如我在评论中所说的那样,它可能不是正确的解决方案,而且对于pandas DataFrames来说绝对不是偶像。
import pandas as pd
groups = data.groupby('Cluster')
#create a dictionary of dataframes, one for each cluster
c_dict = {k: pd.DataFrame(v) for k, v in groups.groups.iteritems() }
如果要将其保存到Excel文件,则文档位于: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_excel.html
底部有一个很好的例子可以满足您的需求。提示:使用for k,v in myDict.iteritems()
获取密钥和值。