【问题标题】:Getting ValueError: The truth value of a Series is ambiguous获取 ValueError:Series 的真值不明确
【发布时间】:2021-09-10 08:29:54
【问题描述】:

我知道有人问过类似的问题。我找不到一个我可以利用的。我不断收到以下错误:ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

不确定代码有什么问题,因为我还在学习 Python。

文件 H:\code library\Python\T900_Dashboard.py 第 57 行,在 SQLCaseWhen1 = [(T900_DashboardFile['NAICS CD (Parent)'] in Power_Sector),\

文件“C:\Users\DC\Anaconda3\lib\site-packages\pandas\core\generic.py”, 第 1478 行,在 nonzero 中引发 ValueError(

我的代码如下:

Power_Sector = [‘221101’, ‘221102’, ‘221103’, ‘926131’]

SQLCaseWhen1([T900_DashboardFile[‘NAICS CD (Parent)’] in Power_Sector), (T900_DashboardFile[‘Industry Sector’] == ‘ENERGY’)

SQLCaseThen1 = [‘Power Generation’, ‘Oil & Gas / Energy’]

T900_DashboardFile1[‘Internal Sector’] = np.select(SQLCaseWhen1,SQLCaseThen1, default=‘’)

                        

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您的语法在多个地方都有错误。我认为您正在寻找以下内容。另外,请使用 pandas isin() 而不是 python in,因为您需要使用 pandas 方法。在使用lambda x: 进行逐行操作时,您只能将普通 python 与 pandas 一起使用:

    Power_Sector = ['221101', '221102', '221103', '926131']
    
    SQLCaseWhen1 = ([T900_DashboardFile['NAICS CD (Parent)'].isin(Power_Sector)).tolist(), 
                    (T900_DashboardFile['Industry Sector'] == 'ENERGY').tolist()]
    
    SQLCaseThen1 = ['Power Generation', 
                    'Oil & Gas / Energy']
    
    T900_DashboardFile1['Internal Sector'] = np.select(SQLCaseWhen1,SQLCaseThen1, default='')
    

    【讨论】:

    • 感谢您的指导。第一次运行代码时收到错误。我放弃了第二个 tolist() 然后运行没有任何问题。
    • @covershaker 缺少一些括号。现已修复。
    猜你喜欢
    • 2020-08-03
    • 2018-07-05
    • 2021-05-27
    • 2018-06-14
    • 1970-01-01
    • 2017-12-22
    • 2016-12-01
    • 1970-01-01
    • 2019-01-24
    相关资源
    最近更新 更多