df.where(dfmask, targetValue)展示
生活随笔
收集整理的這篇文章主要介紹了
df.where(dfmask, targetValue)展示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下面代碼通過一些對比來看出對于特定區域的賦值問題做了演示
之前我寫了一些文章,看到上面有很多關于這個的問題的討論,大家有興趣可以去看看。
第一篇
第二篇
第三篇
但在這里, 我會對于pandas中dataframe的where函數做講解。
import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})# use pandas where you mark after you maskdfmask = pd.DataFrame({'AAA': [True] * 5, 'BBB': [True] * 3 + [False] * 2, 'CCC': [False] * 2 + [True] *3})print(df)print(dfmask)print(df.where(dfmask, 1000))dfnew = df.where(dfmask, 1000)print(dfnew)print(df)輸出的結果是:
AAA BBB CCC 0 0 a a 1 1 b 12 2 2 c 1.2 3 3 d [alist] 4 4 e (1, 2)AAA BBB CCC 0 True True False 1 True True False 2 True True True 3 True False True 4 True False TrueAAA BBB CCC 0 0 a 1000 1 1 b 1000 2 2 c 1.2 3 3 1000 [alist] 4 4 1000 (1, 2)AAA BBB CCC 0 0 a 1000 1 1 b 1000 2 2 c 1.2 3 3 1000 [alist] 4 4 1000 (1, 2)AAA BBB CCC 0 0 a a 1 1 b 12 2 2 c 1.2 3 3 d [alist] 4 4 e (1, 2)解析
- 通過第一個矩陣,我們看到初始化的樣子。
- 通過第二個矩陣,這是我們做的出的dataframe Mask矩陣。通過之前的學習,其實之前的很多方法,都是用類似的機制。
- 可以看到,對應位置為False的地方,全部被改成了1000了。
- 通過,dfnew跟df的數值的區別,可以看到,df.where只是返回了一個copy后的對象。不改原參數。不像之前比較常使用的df.loc這一類的。
總結
以上是生活随笔為你收集整理的df.where(dfmask, targetValue)展示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不允许一个迭代的对象自己接着迭代下去(P
- 下一篇: 某些列满足某些条件就被改是什么值,不满足