【问题标题】:Compare pandas series of Dataframe as a Whole and not element wise将 Pandas 系列的 Dataframe 作为一个整体而不是元素进行比较
【发布时间】:2019-12-22 17:21:55
【问题描述】:

问题: 访问数据框的同一列我想比较系列是否相同。

数据:

用于复制和粘贴的数据链接:API_link_to_data='https://raw.githubusercontent.com/jenfly/opsd/master/opsd_germany_daily.csv'

energyDF = pd.read_csv(API_link_to_data)

row3_LOC  = energyDF.loc[[3],:]
row3_ILOC = energyDF.iloc[[3],:]

这段代码比较元素

 row3_LOC  == row3_ILOC

使用布尔值获取列表

我想得到的是 TRUE,因为 row3_LOC 和 row3_ILOC 是一样的

谢谢

【问题讨论】:

  • 使用:row3_LOC.equals(row3_ILOC)

标签: python pandas comparison row


【解决方案1】:

如果你检查,row3_LOCrow3_ILOC 都是数据帧。

print(type(row3_LOC))
print(type(row3_ILOC))

结果:

<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>

您可以使用row3_ILOC.equals(row3_LOC) 检查它们是否相等。参考equals function

【讨论】:

    【解决方案2】:

    您可以使用all()比较两个系列:

    (row3_loc == row3_ILOC).all()
    

    只要其中一个值不匹配,您就会得到一个错误。您可能还对.any() 感兴趣,它检查至少一个值是否为真。

    【讨论】:

      【解决方案3】:

      用 NULL 填充 Nans energyDF.fillna('NULL')

      energyDF = energyDF.fillna('NULL') 
      energyDF.loc[[3],:] == (energyDF.iloc[[3],:])
      
      Date    Consumption Wind    Solar   Wind+Solar
      3   True    True    True    True    True
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-13
        • 1970-01-01
        • 2020-03-04
        • 1970-01-01
        • 2020-02-03
        • 1970-01-01
        • 2023-03-02
        • 1970-01-01
        相关资源
        最近更新 更多