遍历一个数据框以计算新功能-Python

时间:2020-05-04 22:01:15

标签: python pandas variables analytics feature-engineering

我正在使用信用卡交易的数据框,其中包含以下几列:

timestamp, transaction_id, buyer_id, status

我不希望生成新列q_app_1d来为每个transaction_id根据条件(相同的transaction_id,{{ 1}},即buyer_id的<= 1天)之间的差额。

我尝试使用自连接(也就是将数据框与其自身连接)来执行此操作,但未能成功执行此操作。 我知道如何在SQL中轻松做到这一点,但是我无法在Pandas中使用它。

任何帮助或提示都将不胜感激!

编辑:

样本输入:

status = 1

样本输出:

timestamp

1 个答案:

答案 0 :(得分:0)

这应该有效:

df['timestamp'] = pd.to_datetime(df['timestamp'],dayfirst=True)
df = df.set_index('timestamp')

_df = (df.groupby('buyer_id')['status'].rolling('24H').count()-1).reset_index()
_df.columns = ['buyer_id','timestamp','q_app_1d']
df = df.reset_index()
df = df.merge(_df)
df.head(7)
相关问题