看板 Python 關於我們 聯絡資訊
大家好,假設有一個datafrmae如下 A B C D E F G AB 0 1 2 3 裡面的值不重要,就不一一列出了。 現在遇到兩個問題: 1.我利用.contains分別取出了變數名稱有A和B的行 df_A=df.loc[:,df.columns.str.contains("A")] df_B=df.loc[:,df.columns.str.contains("B")] 所以AB這個變數會同時出現在這兩個dataframe,但我只想讓它出現在df_A而已 請問該怎麼做呢? 2.現在我又利用index取出了第2~4的行 df_2_4=df.iloc[:,2:5] 所以現在我只剩下F跟G行沒有取出,請問有辦法利用類似"減法"取出F跟G行嗎? 有點抽象,類似 df_F_G=df[:,扣掉上述三個df行] print(df_F_G) F G 0 1 2 3 問題有點多,謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.38.87 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1554482320.A.375.html
benson415: 兩題都可以用同一解,愛用DataFrame.filter並搭配regex 04/06 02:06
benson415: ,詳細可看documentation 04/06 02:06
實際上行名稱都是一大串中文,每一個名稱長度也不一樣 我想抓取 "睡覺" "吃飯" ,這兩個詞都不是名稱的開頭或結尾 同時出現"睡覺""吃飯"的歸類成"睡覺" 我有嘗試你所說的regex,但資質駑鈍做不出來 目前想到,先塞選"吃飯",然後再把出現睡覺的刪掉 ※ 編輯: disney82231 (36.226.39.88), 04/06/2019 23:07:38
chen1i6c04: 可以用兩個條件做篩選 04/08 05:58
chen1i6c04: df[(df.columns[df.columns.str.contains('A')])&(df. 04/08 05:59
chen1i6c04: columns[~df.columns.str.contains('B')])] 04/08 06:00
chen1i6c04: 上面的意思是取包含A但不包含B的行 04/08 06:01