python - 将数据导出到 Excel 时出现 Pandas 错误
问题描述
获取熊猫错误为:ValueError:操作数无法与形状(4,)(2,2)一起广播
尝试在 excel 中导出详细信息,我尝试使用以下代码:
预期输出:选定的客户名称:name1、name2 用于设计:CUST 选定的客户名称:值 name3、name4 用于设计:ORDER
已尝试以下代码:
import pandas as pd
import xlsxwriter
workbook = xlsxwriter.Workbook('file.xlsx')
worksheet1 = workbook.add_worksheet()
def CUST1():
df = pd.DataFrame([
['CUST', 'name1', 'PIZZA', 'A'],
['CUST', 'name2', 'DONUT', 'A'],
['ORDER', 'name3', 'CAKE','B'],
['ORDER', 'name4', 'COOKIES', 'C']
],
columns=("DESIG", "NAMES", "CITIES", "CLASS"))
ORD = pd.concat((df['DESIG'],df.groupby('DESIG')
['NAMES'].transform(lambda x: ", ".join(x))),
axis=1).drop_duplicates()
print(ORD)
for x, name in enumerate(ORD):
worksheet1.write(x, 0, "selected customer names"
+ df['DESIG'] + "for" +df.groupby('DESIG')
['NAMES'])
CUST1()
workbook.close()
解决方案
根据提供的预期输出,这应该是您想要的。我刚刚使用了 dataFrame ORD,因为它包含所有必要的信息,而无需进行更多的数据转换。
import pandas as pd
import xlsxwriter
workbook = xlsxwriter.Workbook('file.xlsx')
worksheet1 = workbook.add_worksheet()
def CUST1():
df = pd.DataFrame([
['CUST', 'name1', 'PIZZA', 'A'],
['CUST', 'name2', 'DONUT', 'A'],
['ORDER', 'name3', 'CAKE','B'],
['ORDER', 'name4', 'COOKIES', 'C']
],
columns=("DESIG", "NAMES", "CITIES", "CLASS"))
ORD = pd.concat((df['DESIG'],df.groupby('DESIG')
['NAMES'].transform(lambda x: ", ".join(x))),
axis=1).drop_duplicates()
for x in range(len(ORD)):
worksheet1.write_string(x, 0, "selected customer names: "
+ ORD['NAMES'].iloc[x] + " for the desig: " + ORD['DESIG'].iloc[x])
CUST1()
workbook.close()
推荐阅读
- c# - WPF 初学者:如何绑定到类的实例并在代码隐藏事件处理程序中引用它
- android - 安装 hxam 后的 Android Studio 硬件加速问题启用虚拟化和禁用 hyper-v
- typescript - obj["any"] 的打字稿元素类型定义
- arrays - 扫描多维数组的问题
- perl - 在 Strawberry perl 5.28.1 上安装 FFI-Platypus
- python - PyQt5 QWebEngineView 窗口不会显示
- python - 在 pandas 中对相同的列名进行分组会在列中添加“.1”
- javascript - 如何在 ioinc 4 上放置图像的预加载器背景
- python - Flask 应用程序被多个进程锁定
- ember.js - 如何处理同一资源的多个 ember 模型