如何修复Loc结果返回转置序列

时间:2019-04-12 11:43:28

标签: python pandas dataframe

我正在使用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

0 个答案:

没有答案