Dataframe花样切片~(Python)
生活随笔
收集整理的這篇文章主要介紹了
Dataframe花样切片~(Python)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這個問題可以分兩個思路來講
雖然本質(zhì)上都是一樣的。
在之前的一篇文章中,我提到了用dfmask矩陣這個概念(在官網(wǎng)上有的hhh) 點擊這里可以看~。
這里我也會用到類似的東西,但是理解會更透徹一點。
先來個簡單的點hhh
import pandas as pd if __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})print(df)print(df[df.AAA >= 2])輸出的結(jié)果是:
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 2 2 c 1.2 3 3 d [alist] 4 4 e (1, 2)這個意思還是很簡單的。關(guān)鍵還是對這個要有個比較深的理解。
* 比如,這個東西是得到的是copy對象,還是原數(shù)據(jù)的索引?
通過上面的代碼,輸出的之后,是會報錯的~
雖然也只是警告信息!
輸出的信息如下:
但是將代碼改成下面的代碼就不會出現(xiàn)問題了
import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})df[df.AAA >= 2].copy().iloc[0, 1] = 'qwe'print(df)根據(jù)分析,其實不難推測出。在這里,其實一開始是使用的引用的版本,但是在發(fā)生賦值的情況下,就先轉(zhuǎn)成了copy的版本,然后,發(fā)出警告!
所以,之前雖然表面上說的是這個變成copy,其實還是一個引用對象來的~。
再來研究
- 這里的df.AAA >= 2究竟是什么?
我們來試一下~(其實早就知道結(jié)果了…
import pandas as pdif __name__ == '__main__':df = pd.DataFrame({'AAA': range(5), 'BBB': list('abcde'), 'CCC': ['a', 12, 1.2, ['alist'], (1, 2)]})print(df.AAA >= 2)輸出的結(jié)果是:
0 False 1 False 2 True 3 True 4 True Name: AAA, dtype: bool- 也就是通過個series對象,來進行列篩選!
- 不同于.where,這里處理的對象是True的~
最后,老套路,宣傳一波自己的公眾號!(求關(guān)注哇!)
本人中大一肥宅,歡迎大家關(guān)注,請掃下面的二維碼(〃’▽’〃)
如果覺得有幫助的話,可以掃碼,贊賞鼓勵一下!謝謝!
總結(jié)
以上是生活随笔為你收集整理的Dataframe花样切片~(Python)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 某些列满足某些条件就被改是什么值,不满足
- 下一篇: Python模拟登录详细教程!