[問題] dataframe取特定行問題

作者: disney82231 (菜逼八YOYOYO)   2019-04-06 00:38:37
大家好,假設有一個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
問題有點多,謝謝大家
作者: benson415 (沛行)   2019-04-06 02:06:00
兩題都可以用同一解,愛用DataFrame.filter並搭配regex,詳細可看documentation
作者: chen1i6c04 (輕踏水無痕)   2019-04-08 05:58:00
可以用兩個條件做篩選df[(df.columns[df.columns.str.contains('A')])&(df.columns[~df.columns.str.contains('B')])]上面的意思是取包含A但不包含B的行

Links booklink

Contact Us: admin [ a t ] ucptt.com