【问题标题】:delete row from df if conditions are met如果满足条件,则从 df 中删除行
【发布时间】:2020-09-11 14:57:21
【问题描述】:

如果两个项目具有相同的标识,我正在尝试从我的 df 中删除满足某些条件的行。

以前我可以使用

for n, x in enumerate(names):
if "GDS" in x:
    df.drop(n, inplace = True)

这很好用,因为它是一个列表,但现在我正在使用两个不同的列表,其中包含不同数量的元素,枚举将不起作用(或者至少我不知道如何使它起作用)。

for z in tickDel:
for i in ticker:
    if z == i:
       (delete row in ticker with i string)

我尝试了很多组合,例如 df.drop(i, inplace = True) 但我只是得到 KeyError:“['BRNB.L'] 在轴中找不到”

我的数据框看起来像这样

   Ticker TV Ticker YF                                              Names                 Sectors Industry
0        ABD     ABD.L      ABERDEEN NEW DAWN INVESTMENT TRUST PLC ORD 5P           Miscellaneous      yyy

任何帮助将不胜感激。

【问题讨论】:

    标签: python-3.x pandas dataframe


    【解决方案1】:

    你可以试试

    df=df[df['Ticker TV'].ne(df['Ticker YF'])]
    

    【讨论】:

    • 工作完美,谢谢。 .ne 究竟做了什么?
    • 它在我正在使用的测试数据库中运行良好,但是当我将它应用到主数据库时,只更改它读取的 csv 不起作用
    猜你喜欢
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2019-11-23
    • 2023-02-15
    相关资源
    最近更新 更多