def multiple_dfs(file_name, sheet, *args):
"""
Put multiple dataframes into one xlsx sheet
"""
row=2
writer = pd.ExcelWriter(file_name, engine='openpyxl')
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
df2 = pd.DataFrame({'amount': [100, 500, 1000],
'income': [40000, 50000, 42000]})
df3 = pd.DataFrame(['Title'])
df.to_excel(writer, sheet, startrow=row, index=False)
row += 2
df2.to_excel(writer, sheet, startrow=row, index=False)
df3.to_excel(writer, sheet, startrow=0, startcol=0, header=None, \
index=False)
我有以下错误ValueError: DataFrame constructor not properly called!
,但我不知道是什么问题。有什么建议吗?
我想在工作表的顶部添加标题,但我不知道这是否是最佳做法。谁能用熊猫向我推荐一些东西?
答案 0 :(得分:3)
您似乎需要list
:
df2 = pd.DataFrame(['Test'])
print (df2)
0
0 Test
编辑:
似乎你需要:
def multiple_dfs(file_name, sheet, *args):
"""
Put multiple dataframes into one xlsx sheet
"""
row=2
writer = pd.ExcelWriter(file_name)
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
df2 = pd.DataFrame({'amount': [100, 500, 1000],
'income': [40000, 50000, 42000]})
df3 = pd.DataFrame(['Title'])
df.to_excel(writer, sheet, startrow=row, index=False)
row += len(df) + 1
df2.to_excel(writer, sheet, startrow=row, index=False)
df3.to_excel(writer, sheet, startrow=0, startcol=0, header=None, \
index=False)
multiple_dfs('file.xlsx','Sheet1')
答案 1 :(得分:0)
刚刚遇到了同样的错误。我的代码在我的计算机上运行良好,如下所示:
test_dict = {'x': '123', 'y': '456', 'z': '456'}
df=pd.DataFrame(test_dict.items(),columns=['col1','col2'])
但是,它在其他平台上不起作用。这给了我错误 ValueError: DataFrame constructor not properly called!
就像原始问题一样。
我通过简单地在字典项周围添加 list()
来尝试下面的代码,
df=pd.DataFrame(list(test_dict.items()),columns=['col1','col2'])
它运行得很顺利!
希望这个答案可以帮助像我一样遇到类似情况的人。