热线电话:13121318867

登录
2019-01-18 阅读量: 1806
求助!数据清洗排出某些值

我有一个以下数据框。(数据框中的实际列超过30)

ID  col1    col2    col3   col4
1 a## b## HO HO
2 c## d23 c## HO
3 a## k## z## s#
4 c## b12 a12 c12
5 b## HO z## HO

我想创建一个新的数据帧过滤行,其中所有字符串都以'##'结尾,如果该行中的一个单元格包含'HO',我想跳过它,如果其余列包含,则返回一行以##结尾的字符串

在上面的例子中,新的数据帧将是这样的:

ID  col1    col2    col3  col4
1 a## b## HO HO
3 a## k## z## s#
5 b## HO z## HO

目前我在做

m = np.logical_and.reduce([
[x.endswith(
'##') for x in df[c] ] for c in df.columns if x!='HO'] )

但是df [m]只给出了一行而不是另外两行

3   a##      k##    z##
150.0000
4
关注作者
收藏
评论(1)

发表评论
啊啊啊啊啊吖
2019-01-18
皇天不负有心人,终于我自己摸索发现了解决办法:可以将“HO”替换为虚拟字符串'##',将此结果存储为临时DataFrame,计算temp上的掩码,并使用该字符串重新编入索引df。
0.0000 0 0 回复