如何从字典生成带DATE首列的单行大写列名pandas DataFrame
问题原因
你原代码使用orient='index'读取字典时会把水果名作为行索引,stack()操作会进一步将数据转为长结构,自然出现每个水果单独成行的结果,且列数和你指定的5列不匹配。
修正后的完整代码
import pandas as pd import datetime # 原水果数据 fruit_dict = {'apples': 12.0, 'pears': 14.0, 'oranges': 5.0, 'lemons': 2.0} # 生成日期:如果需要示例中的年-月-日格式就用下方参数,要保留你原来的日/月/年格式改为"%d/%m/%Y"即可 now = datetime.datetime.now() today = now.strftime("%Y-%m-%d") # 1. 将字典的水果名键转为全大写 upper_fruit = {k.upper():v for k,v in fruit_dict.items()} # 2. 加入DATE字段,放入列表代表仅1行数据 row_data = [{"DATE": today, **upper_fruit}] # 3. 生成DataFrame fruit_price = pd.DataFrame(row_data) # 输出时去掉默认索引,和预期效果完全一致 print(fruit_price.to_string(index=False))
输出效果
DATE APPLES PEARS ORANGES LEMONS 2024-05-20 12.0 14.0 5.0 2.0
内容的提问来源于stack exchange,提问作者alec22
相关产品推荐
相关产品推荐

