【问题标题】:Delete rows of dataframe according to condition (comparing data in two columns)根据条件删除数据框的行(比较两列中的数据)
【发布时间】:2020-10-19 09:14:49
【问题描述】:

我有一个数据框,其中包含原产国和目的地国之间的贸易流(出口)(在 df 的两个不同列中指定)。我需要清理数据并删除目的地国家/地区与目的地国家/地区匹配的行。我使用了以下代码:

dfn = dfn[dfn["Destination"] != dfn["Origin"]]

但是,我意识到我实际上需要保持“世界”既位于目的地又位于起点的线条(即世界向世界的总出口)。对于world == destination == origin的行,如何删除destination == origin 除了的所有行?

我正在考虑对我的约 200 万行进行交互,并仅删除适用特定条件的行。我尝试了一些类似的方法,但它并没有真正起作用。你能帮帮我吗?

for index, row in dfn.iterrows():
         if row['Destination'] == row['Origin'] and row['Destination'] =! 'World':
            df.drop(index, inplace=True) 

在此先感谢

【问题讨论】:

    标签: dataframe for-loop if-statement iteration conditional-statements


    【解决方案1】:

    您可以使用“|”来使用多个条件(或)运算符和 .loc 方法

    dfn = dfn.loc[(dfn['Destination'] != dfn['Origin']) | (dfn['Destination'] == '世界'), ]

    让我知道它是如何工作的, 马修

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      相关资源
      最近更新 更多