【问题标题】:pandas filter by values in 2 columns, return entire rowpandas 按 2 列中的值过滤,返回整行
【发布时间】:2018-09-14 11:30:34
【问题描述】:

我在这里查看了多个问题,但没有任何解决方案有效。 我有一个矩阵,我想过滤 2 列中的值并返回应用此过滤器的 整行

目前我已经尝试过:

mask = (data['sender'] == 'me') & (data['status'] == 'done') data[mask] 这使得所有值都变为“NaN”。

当我尝试单独应用掩码时,我得到一个 DataFrame,其中包含该位置的正确值,但所有其他列都为 NaN。

我也试过不同的方法,就是这样:

data.loc[data['sender' == 'me'] 除了值出现的行 x 列之外,它具有相同的结果,即在 NaN 中转换每个值..

【问题讨论】:

  • 我认为你的解决方案是正确的,只分配像df = data[mask]print (df)这样的输出
  • 是否可以创建一些示例数据?如果不工作,它似乎是一些与数据相关的问题。
  • @jezrael 这可能是数据的问题。我无法在手动输入的值上重现它。它发生在通过 CSV 解析的值
  • 一个想法,如果创建默认索引值,data = data.reset_index(drop=True) 应该会有所帮助
  • 好的,现在我已经加载了 CSV 文件以与 pandas 一起使用,它按预期工作。谢谢@jezrael!

标签: python python-3.x pandas jupyter-notebook


【解决方案1】:

希望对你有帮助

    k=pd.DataFrame()
    k=data[(data['sender'] == 'me') & (data['status'] == 'done')]
    k.head()

【讨论】:

  • 感谢您的建议,最终这是正确的方法,尽管这不是我遇到的问题。我会接受这个答案,因为它实际上确实回答了我应该做的事情。 :)
猜你喜欢
  • 2021-12-10
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 2022-06-20
相关资源
最近更新 更多