如何讓 Pandas 按數(shù)據(jù)類型選擇列?

Pandas 百問百答第 014 篇。

有時候,df 里包含了不同的數(shù)據(jù)類型,比如,文本、日期、整數(shù)、小數(shù),如果需要篩選出某一類型的幾列,怎么整?

呆鳥也不賣關(guān)子,直接說, pandas 的 df 提供了 select_dtypes 函數(shù),可以按數(shù)據(jù)類型選擇 df 的列。該函數(shù)包含 includeexclude 參數(shù):

  • include 表示包含哪種類型,輸出結(jié)果是包含該類型的 df;
  • exclude 表示排除哪種類型,輸出結(jié)果是不包含該類型的 df;
  • 包含或排除的類型可以是多種,用列表顯示,如 include=['float64','int64'];

示例代碼:

df = pd.DataFrame({'a': [1, 2] * 3,
                   'b': [True, False] * 3,
                   'c': [1.0, 2.0] * 3})

# 輸出包含 bool 數(shù)據(jù)類型的列
df.select_dtypes(include='bool')

# 輸出包含小數(shù)數(shù)據(jù)類型的列
df.select_dtypes(include=['float64'])

# 輸出排除整數(shù)的列
df.select_dtypes(exclude=['int64'])

數(shù)據(jù)類型說明

  • 選擇所有數(shù)字類型的列,用 np.number'number'
  • 選擇字符串類型的列,必須用 object,注意,這將返回所有數(shù)據(jù)類型為 object 的列
  • 選擇日期時間類型的列,用np.datetime64、'datetime''datetime64'
  • 選擇 timedelta 類型的列,用np.timedelta64、'timedelta''timedelta64'
  • 選擇 category 類型類別,用 'category'
  • 選擇 datetimetz 類型的列,用'datetimetz''datetime64[ns, tz]'

好了,本篇比較簡單,但也容易讓人忽略,現(xiàn)在你知道怎么按數(shù)據(jù)類型選擇 df 中的列了嗎?

本文譯自 pandas 官檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容