【问题标题】:Python if statment's results into pandas dataframePython if 语句的结果进入 pandas 数据框
【发布时间】:2020-03-17 10:03:17
【问题描述】:

我正在尝试从一个简单的 if 语句结果创建一个 DataFrame,但没有成功。你能告诉我正确的方法吗?这是我目前所拥有的,但discrep 的值没有添加到DataFrame

discrepancy_value=round(system_availability.iloc[0,0]-data_av.iloc[0,0],2)
discrep=[]
if discrepancy_value>1:
    discrep=discrepancy_value
else:
    discrep=r'Discrepancy is not significant'
discrepancy=pd.DataFrame()
discrepancy['Discrepancy']=discrep

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您正在尝试在 0 行的空数据集上设置一列。如果数据框中已经存在行,则以下将为所有行添加相同的值:

    discrepancy['Discrepancy']=discrep
    

    但是由于数据框中没有行,所以该列没有添加到任何行。

    您可以使用这样的列值追加一个新行:

    discrepancy.append([{'Discrepancy': discrep}])
    

    或者在创建数据框时已经添加行

    discrepancy=pd.DataFrame([{'Discrepancy': discrep}])
    

    【讨论】:

      【解决方案2】:

      一行:

      discrepancy = pd.DataFrame({'Discrepancy': [discrepancy_value if discrepancy_value > 1 else r'Discrepancy is not significant']})
      

      【讨论】:

      • 谢谢。我刚刚开始 python 单行版本是在下一个级别。也许在两周内:)
      【解决方案3】:

      您的问题是,您试图在数据框中插入单个值。数据框需要列表,而不是值。 你应该做的是:

      discrep=[]
      if discrepancy_value>1:
          discrep.append(discrepancy_value)
      else:
          discrep.append(r'Discrepancy is not significant')
      discrepancy=pd.DataFrame()
      discrepancy['Discrepancy']=discrep
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-18
        • 2017-09-06
        • 1970-01-01
        • 1970-01-01
        • 2021-04-29
        • 1970-01-01
        • 2015-09-03
        相关资源
        最近更新 更多