[问题] 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