【问题标题】:How to filter data in python如何在python中过滤数据
【发布时间】:2015-04-26 02:09:16
【问题描述】:

我有一个类似d1 的数据集。

import pandas as pd
d1 = {
'customers': pd.Series([1, 1, 1, 2, 2, 3, 3, 4, 4]),
'channel': pd.Series(['a', 'a', 'b', 'c', 'a', 'a', 'b', 'b', 'c']),
'freq': pd.Series([3, 3, 3, 2, 2, 2, 2, 2, 2])
}
d1=pd.DataFrame(d1)

我想获取仅使用过两个不同渠道的客户列表,并且渠道“a”是强制性的。

例如……第一个客户使用了两个不同的渠道“a”和“b”
第二个客户使用了“a”和“c”第三个客户使用了“a”和“b”。但是客户 4 没有使用通道 'a' 等等....

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这是你想要的吗?

    d1[d1.customers.isin(d1[(d1.freq==2) & (d1.channel=="a")].customers)]
    
      channel  customers  freq
    3       c          2     2
    4       a          2     2
    5       a          3     2
    6       b          3     2
    

    HTH

    【讨论】:

    • 没有。 freq=2 表示,客户将有两条记录。在这两条记录中,至少一条记录应该在通道“a”中。
    • 这不是您的数据框包含的内容。
    • 我不明白。没有“记录”列。请改写您的问题,并发布您想要的更精确的输出。 (并在需要时更正输入)
    • 查看客户 2,他有两条记录。在这两条记录中,第一条记录来自通道“c”,第二条记录来自通道“a”。我希望我的输出中有这些客户。看看客户 3,他的模式和客户 2 一样。
    • @kondal,请修改您的问题
    猜你喜欢
    • 2021-06-20
    • 1970-01-01
    • 2023-01-29
    • 2023-03-25
    • 2018-02-11
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多