【问题标题】:Subset data from pandas来自 pandas 的子集数据
【发布时间】:2015-12-21 07:51:53
【问题描述】:

我有一个带有 Cust_email,visit_date_time, transaction_date_time 列的 pandas 数据框。 Cust_email 包含客户的电子邮件 ID,visit_date_time 包含客户访问产品的时间戳,transaction_date_time 包含客户购买该产品的交易时间戳,否则该字段保持为空。

现在,我想对仅包含进行至少一次交易的电子邮件 ID 的 pandas(所有列)进行子集化,即,我想删除所有那些其所有 visit_date_time,transaction_date_time 组合具有空条目的电子邮件 ID

【问题讨论】:

  • 所以你想要df[df['transaction_date_time'].notnull()]
  • 否,例如abc@gmail.com 有三个记录,其中两个记录没有transaction_date_time。但既然他已经做了一笔交易,我也想要他的另外两条记录。
  • 所以你想要df['df['Cust_email'].isin(df.loc[df['transaction_date_time'].notnull(), 'Cust_email'].unique())
  • @EdChum 谢谢。这行得通。

标签: python pandas dataframe subset


【解决方案1】:

您可以使用isin 来测试您的客户ID 的成员资格,我们首先过滤未完成的交易中的df,从这些行中获取客户ID 并传递给isin

df['df['Cust_email'].isin(df.loc[df['transaction_date_time'].notnull(), 'Cust_email'].unique())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 2017-07-16
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2017-05-02
    • 2018-05-04
    相关资源
    最近更新 更多