比较 pandas 系列的 Dataframe 作为一个整体而不是元素明智的

Compare pandas series of Dataframe as a Whole and not element wise

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

数据:

DATA link 用于复制和粘贴: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 是相同的

谢谢

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

(row3_loc == row3_ILOC).all()

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

如果检查,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.

用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