我正在使用loc检索每个用户的一系列交易并将其转换为数据框。
似乎每当用户进行1次交易时,结果就是在垂直轴上带有'transaction_date'的DF 如果有多个结果,则user_id(msno)在垂直轴上。
我设法通过添加一条if语句来检查第一列是否为'transaction_date',以及是否不是我对其进行转置,但我正在寻找一种更简洁的方法来解决此问题。
if df.columns.values[0] != 'transaction_date':
df =df.T
trans_train.loc['++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI=',['transaction_date','membership_expire_date']]
我获得多个结果的系列是
msno transaction_date membership_expire_date
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-03-20 2016-04-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-04-20 2016-05-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-05-20 2016-06-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-06-20 2016-07-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-07-20 2016-08-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-08-20 2016-09-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-09-20 2016-10-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-10-20 2016-11-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-11-20 2016-12-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2016-12-20 2017-01-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2017-01-20 2017-02-20
++0/NopttBsaAn6qHZA2AWWrDg7Me7UOMs1vsyo4tSI= 2017-02-20 2017-03-20
单笔交易我得到的系列是:
++096narOxHnDPtbtUtB4WDqDy8EJacQypdqDYBHmmY=
transaction_date 2016-11-26 00:00:00
membership_expire_date 2016-12-03 00:00:00
我想获得以下信息,但不使用以下条件:
msno transaction_date membership_expire_date
++096narOxHnDPtbtUtB4WDqDy8EJacQypdqDYBHmmY= 2016-11-26 00:00:00 2016-12-03 00:00:00