【问题标题】:Error: ValueError: Lengths must match to compare when trying to filter the dataframe in Pandas错误:ValueError:尝试过滤 Pandas 中的数据帧时,长度必须匹配才能进行比较
【发布时间】:2020-07-13 04:47:57
【问题描述】:

我很抱歉问这个问题,但由于某些原因,我花了几分钟才弄清楚这个问题,但我没有得到它。

我有一个dataframe,类似的东西

df

Output:
  TypePro
  ["JJ", "KK"]
  ["JK", "RJ"]
  ["JK"]
  ["JK"]    

我正在尝试过滤dataframe:

df_JJ_KK = df[df.TypePro == ["JJ", "KK"]]

但我收到以下错误:ValueError: Lengths must match to compare

请问我该如何解决这个问题?

【问题讨论】:

  • 太棒了!谢谢。 @jezrael 来救援。

标签: python pandas numpy dataframe filtering


【解决方案1】:

使用列表推导进行过滤:

df = df[[x == ["JJ", "KK"] for x in df.TypePro]]
print (df)
    TypePro
0  [JJ, KK]

或者比较tuples:

df = df[df.TypePro.map(tuple) == tuple(["JJ", "KK"])]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2017-03-25
    • 2017-04-22
    • 2017-04-12
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多