📚【Python】進階學習:pandas–query()用法詳解
🌈 個人主頁:高斯小哥
🔥 高質量專欄:Matplotlib之旅:零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程👈 希望得到您的訂閱和支持~
💡 創作高質量博文(平均質量分92+),分享更多關于深度學習、PyTorch、Python領域的優質內容!(希望得到您的關注~)
🌵文章目錄🌵
- 🔍一、pandas庫簡介
- 😊二、query()方法基礎
- 📋 示例1:基本用法
- 😊三、高級用法與技巧
- 📋 示例2:使用邏輯運算符
- 📋 示例3:使用字符串方法
- 😉四、結合其他pandas功能
- 📋 示例4:結合groupby()
- 🌈五、總結
- 🤝六、期待與你共同進步
🔍一、pandas庫簡介
??pandas是Python中一個非常流行的數據處理庫,它提供了大量的數據結構(如Series和DataFrame)以及數據分析工具,使得數據處理變得既簡單又高效。在pandas中,query()
方法是一個功能強大的函數,允許用戶通過字符串表達式來篩選DataFrame中的數據。
😊二、query()方法基礎
??query()
方法允許你使用字符串表達式來篩選DataFrame的行。這個表達式類似于你在Python中使用的常規表達式,但是它專門針對DataFrame的列名和值。
📋 示例1:基本用法
import pandas as pd# 創建一個示例DataFrame
data = {'A': [1, 2, 3, 4],'B': [5, 6, 7, 8],'C': ['p', 'q', 'r', 's']
}
df = pd.DataFrame(data)# 使用query()方法篩選A列大于2的行
filtered_df = df.query('A > 2')
print(filtered_df)
輸出:
A B C
2 3 7 r
3 4 8 s
😊三、高級用法與技巧
??query()
方法不僅限于簡單的比較操作,你還可以使用邏輯運算符(如&
、|
)和更復雜的表達式來篩選數據。
📋 示例2:使用邏輯運算符
import pandas as pd# 創建一個示例DataFrame
data = {'A': [1, 2, 3, 4],'B': [5, 6, 7, 8],'C': ['p', 'q', 'r', 's']
}
df = pd.DataFrame(data)# 篩選A列大于2且B列小于等于7的行
filtered_df = df.query('A > 2 and B <= 7')
print(filtered_df)
輸出:
A B C
2 3 7 r
📋 示例3:使用字符串方法
import pandas as pd# 創建一個示例DataFrame
data = {'A': [1, 2, 3, 4],'B': [5, 6, 7, 8],'C': ['p', 'qu', 'r', 's']
}
df = pd.DataFrame(data)# 篩選C列以'q'開頭的行
filtered_df = df.query('C.str.startswith("q")')
print(filtered_df)
輸出:
A B C
1 2 6 qu
😉四、結合其他pandas功能
??query()
方法還可以與其他pandas功能(如groupby()
、sort_values()
等)結合使用,以執行更復雜的數據操作。
📋 示例4:結合groupby()
import pandas as pd# 創建一個示例DataFrame
data = {'A': [1, 1, 2, 2, 3, 3, 4, 4],'B': [5, 6, 6, 7, 7, 8, 8, 9],'C': ['p', 'q', 'r', 's', 'p', 'q', 'r', 's']
}
df = pd.DataFrame(data)# 按A列分組,并在每個組內篩選B列的最大值
grouped_df = df.groupby('A').apply(lambda x: x.query('B == B.max()'))
print(grouped_df)
輸出:
A B C
A
1 1 1 6 q
2 3 2 7 s
3 5 3 8 q
4 7 4 9 s
🌈五、總結
??query()
方法是pandas庫中一個強大而靈活的工具,它允許你使用易讀的字符串表達式來篩選DataFrame中的數據。通過結合邏輯運算符和字符串方法,你可以執行復雜的數據篩選操作。然而,在處理大型數據集時,你應該注意性能問題,并考慮使用其他篩選方法。
🤝六、期待與你共同進步
??🌱 親愛的讀者,非常感謝你每一次的停留和閱讀!你的支持是我們前行的最大動力!🙏
??🌐 在這茫茫網海中,有你的關注,我們深感榮幸。你的每一次點贊👍、收藏🌟、評論💬和關注💖,都像是明燈一樣照亮我們前行的道路,給予我們無比的鼓舞和力量。🌟
??📚 我們會繼續努力,為你呈現更多精彩和有深度的內容。同時,我們非常歡迎你在評論區留下你的寶貴意見和建議,讓我們共同進步,共同成長!💬
??💪 無論你在編程的道路上遇到什么困難,都希望你能堅持下去,因為每一次的挫折都是通往成功的必經之路。我們期待與你一起書寫編程的精彩篇章! 🎉
??🌈 最后,再次感謝你的厚愛與支持!愿你在編程的道路上越走越遠,收獲滿滿的成就和喜悅!祝你編程愉快!🎉