Ver*_*ode 3 python excel dictionary dataframe pandas
我有这个 python 字典,我想将这些数据写入 Excel 文件。
\n注意:有很多类别,每个类别有很多汽车(为简单起见,我使用了 2 个类别)
\ndata = {"Category": {"Diesel" : [{\n "Name": "Land Rover", \n "Description":"No Description Found", \n "Price": "\xc2\xa3 x" }],\n\n "Electric" : [{"Name": "Tesla Model X", \n "Description":"No Description Found", \n "Price": "\xc2\xa3 x" }]\n } \n }\nRun Code Online (Sandbox Code Playgroud)\n期望的输出:
\n| 类别 | 姓名 | 描述 | 价格 |
|---|---|---|---|
| 柴油机 | |||
| 路虎 | 未找到描述 | \xc2\xa3 x | |
| 电的 | |||
| 特斯拉 Model X | 未找到描述 | \xc2\xa3 x |
TL;DR - 最好的解决方案是最后。
\n最直接的方法是检查数据并逐行附加行:
\ndf = pd.DataFrame(columns=[\'Category\', \'Name\', \'Description\', \'Price\'])\ni = 0\nfor category, cars in data[\'Category\'].items():\n df.loc[i, \'Category\'] = category\n i += 1\n for car in cars:\n df.loc[i, [\'Name\', \'Description\', \'Price\']] = car\n i += 1\nRun Code Online (Sandbox Code Playgroud)\n最后,您的数据框应如下所示:
\n Category Name Description Price\n0 Diesel NaN NaN NaN\n1 NaN Land Rover No Description Found \xc2\xa3 x\n2 Electric NaN NaN NaN\n3 NaN Tesla Model X No Description Found \xc2\xa3 x\nRun Code Online (Sandbox Code Playgroud)\n最后,将此数据框作为 Excel 文件写入磁盘:
\ndf.to_excel(...)\nRun Code Online (Sandbox Code Playgroud)\n默认情况下,NaNExcel 文件中的单元格将为空,这就是您在示例中的情况。
但是,您可以通过使用纯 pandas 解决方案来完全避免循环和计数器:
\npd.concat(\n df\n for category, cars in data[\'Category\'].items()\n for df in (pd.DataFrame({\'Category\': [category]}), pd.DataFrame(cars)))\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |