【问题标题】:Getting Pandas error while exporting data to excel将数据导出到 Excel 时出现 Pandas 错误
【发布时间】:2019-11-28 13:35:58
【问题描述】:

得到熊猫错误为: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()

【问题讨论】:

    标签: python python-3.x pandas python-2.7


    【解决方案1】:

    根据提供的预期输出,这应该是您想要的。我刚刚使用了 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()
    

    【讨论】:

    • 谢谢...有什么方法可以在没有 numpy 的情况下做到这一点?
    • 是的!我编辑了,所以现在没有 numpy.有很多方法可以解决这个问题!
    • 非常好,非常感谢@Kasper....我不知道我们可以这样使用:ORD['NAMES'].iloc[x]....非常感谢
    • @GeethaAnand Pandas 在类固醇上是 Numpy(它是一个 Numpy 包装器 AFAIK)
    猜你喜欢
    • 2018-09-12
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2012-06-14
    • 1970-01-01
    • 2017-12-01
    相关资源
    最近更新 更多