基于nam删除数据帧行

2024-05-07 02:17:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧df,其中我试图删除所有curv_typPYC_RTYCIF_RT的行

    curv_typ   maturity    bonds  2015M06D19   2015M06D18   2015M06D17   \
0     PYC_RT       Y1    GBAAA        -0.24        -0.25        -0.23   
1     PYC_RT       Y1  GBA_AAA        -0.05        -0.05        -0.05   
2     PYC_RT      Y10    GBAAA         0.89         0.92         0.94

我的代码如下所示。但是,由于某种原因df在运行下面的代码后,结果与上面的完全相同:

df = pd.DataFrame.from_csv("ECB.tsv", sep="\t", index_col=False)
df[df["curv_typ"] != "PYC_RT"]
df[df["curv_typ"] != "YCIF_RT"]

Tags: 数据代码dfpycrtaaay1gba
2条回答

您需要将结果DataFrame分配给原始DataFrame(因此,过度写入):

df = df[df["curv_typ"] != "PYC_RT"]
df = df[df["curv_typ"] != "YCIF_RT"]

使用^{}并否定~掩码的布尔条件:

In [76]:
df[~df['curv_typ'].isin(['PYC_RT', 'YCIF_RT'])]

Out[76]:
Empty DataFrame
Columns: [curv_typ, maturity, bonds, 2015M06D19, 2015M06D18, 2015M06D17]
Index: []

请注意,这不会在示例数据集中返回任何内容

相关问题 更多 >