簡體   English   中英

拆分一個 Pandas dataframe,保留兩個部分

[英]Split a Pandas dataframe, keep both parts

我正在通過導入 a.csv 文件創建一個 dataframe。 然后我需要根據某些條件刪除行。 因為刪除的行數非常少,所以通過檢查已刪除的內容而不是剩余的內容來驗證條件更容易。 我最終做了這樣的事情:

    dfcd=df.loc[(~df.Course_Code.str.contains('MG')) & (~df.Course_Code.str.contains('DE'))]
    df=df.loc[(df.Course_Code.str.contains('MG')) | (df.Course_Code.str.contains('DE'))]

但這感覺非常笨拙,並且隨着條件變得越來越復雜,我擔心我會錯誤地編寫逆條件(閱讀另一個關於 SO 的線程我意識到我可以通過使用另一組帶有 ~ 的括號來簡化上述內容,但無論如何)

是否有一個命令會創建兩個數據幀,一個條件為真,另一個為假? 就像是:

    df,dfcd=df.<another_command>[(df.Course_Code.str.contains('MG')) | (df.Course_Code.str.contains('DE'))]

還是有另一種更好的方法來做到這一點?

你可以使用| 對於正則表達式or ,因此可以通過過濾條件來簡化您的解決方案,如果條件得到False s,則可以通過~為匹配行反轉條件:

m = df.Course_Code.str.contains('MG|DE')
#same like
# m = (df.Course_Code.str.contains('MG')) | (df.Course_Code.str.contains('DE'))

df1, df2 = df[m], df[~m]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM