比较熊猫系列数据框整体,而不是元素明智的

时间:2019-12-22 17:21:55

标签: python pandas comparison row

问题: 如果序列相同,则访问数据框的同一列。

数据:

用于复制和粘贴的数据链接: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相同

谢谢

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

(row3_loc == row3_ILOC).all()

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

答案 2 :(得分:0)

用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