我正在尝试根据行将DataFrame中True
的第一个实例更改为False
:
A B C
Number
1 True True True
2 False True True
3 False False True
A B C
Number
1 False True True
2 False False True
3 False False False
每次尝试使用for index, row in target_df.iterrows():
行时,当我翻阅该行时,它最终都找不到任何'True'。
谢谢!
答案 0 :(得分:3)
您可以为每一行以及DataFrame.mask()
使用布尔值的累积和(False对应于0; True等于1):
Indexes
ON :TTL(ttl) ONLINE
ON :City(cityName) ONLINE (for uniqueness constraint)
ON :Region(region) ONLINE (for uniqueness constraint)
ON :Sector(sectorName) ONLINE (for uniqueness constraint)
Constraints
ON ( city:City ) ASSERT city.cityName IS UNIQUE
ON ( region:Region ) ASSERT region.region IS UNIQUE
ON ( sector:Sector ) ASSERT sector.sectorName IS UNIQUE
>>> condition = df.cumsum(axis=1) == 1 >>> df.mask(condition, False) a b c 0 False True True 1 False False True 2 False False False
返回形状与自身相同的对象,并且其对应的条目 来自cond为False的自我,否则来自其他人。
在这种情况下,df.mask(self, cond, other=nan)
在除要切换condition
-> True
的点之外的所有地方均为False:
False
另一种选择是使用NumPy:
>>> condition
a b c
0 True False False
1 False True False
2 False False True