作者disney82231 (小刀会序曲)
看板Python
标题[问题] dataframe取特定行问题
时间Sat Apr 6 00:38:37 2019
大家好,假设有一个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://webptt.com/cn.aspx?n=bbs/Python/M.1554482320.A.375.html
1F:→ benson415: 两题都可以用同一解,爱用DataFrame.filter并搭配regex 04/06 02:06
2F:→ benson415: ,详细可看documentation 04/06 02:06
实际上行名称都是一大串中文,每一个名称长度也不一样
我想抓取 "睡觉" "吃饭" ,这两个词都不是名称的开头或结尾
同时出现"睡觉""吃饭"的归类成"睡觉"
我有尝试你所说的regex,但资质驽钝做不出来
目前想到,先塞选"吃饭",然後再把出现睡觉的删掉
※ 编辑: disney82231 (36.226.39.88), 04/06/2019 23:07:38
3F:→ chen1i6c04: 可以用两个条件做筛选 04/08 05:58
4F:→ chen1i6c04: df[(df.columns[df.columns.str.contains('A')])&(df. 04/08 05:59
5F:→ chen1i6c04: columns[~df.columns.str.contains('B')])] 04/08 06:00
6F:→ chen1i6c04: 上面的意思是取包含A但不包含B的行 04/08 06:01