pandas df:如果字符数在多列中不匹配,则用 np.NaN 替换值

时间:2021-02-27 14:22:55

标签: pandas dataframe

目前坚持在这个论坛上我希望能找到答案:

  • 我有一个多列包含 URL 的 df。我的索引列也是 URL。
  • 目的:如果索引中“/”(count())的数量不等于“/”(count())的数量,我想用np.NaN替换所有列的df值在其他列的每个人的值中

例如

Table lookalike

1 个答案:

答案 0 :(得分:0)

首先,您需要一列进行比较。

 counts = df['id_url'].str.count('/')

然后您一次评估所有行。

 mask = df.str.count('/') == counts

然后我们想显示所有值都相等的行。

 mask = mask.all(axis=1)

现在我们有了一个掩码来表示每个值都相等,我们可以使用 not 运算符来过滤那些至少有一列不相等的值。

 df.loc[~mask, :] = np.nan # replaces every value in the row with np.nan