我有以下数据框:
Date A B
=====================
2015-01-01 A 0
2015-01-02 A 1
2015-01-03 A 0
2015-01-01 B 0
2015-01-02 B 0
2015-01-03 B 0
2015-01-04 B 1
2015-01-05 B 1
需要:
Date A B C
===========================
2015-01-01 A 0 0
2015-01-02 A 1 01
2015-01-03 A 0 010
2015-01-01 B 0 0
2015-01-02 B 0 00
2015-01-03 B 0 000
2015-01-04 B 1 0001
2015-01-05 B 1 00011
Column C
是通过2015-01-03
之前的value
来为B
派生的。
这是我到目前为止所做的最好的,但它会将所有值附加到一个组中。之前的转变尝试对我来说并不成功。
df2 = df.groupby('Date', 'A')['B'].apply(''.join).reset_index()
df = df.merge(df2, on=['Date', 'A'], how='left')
答案 0 :(得分:5)
尝试
df1['C'] = df1.groupby('A').B.apply(lambda x: x.astype(str).cumsum())
Date A B C
0 2015-01-01 A 0 0
1 2015-01-02 A 1 01
2 2015-01-03 A 0 010
3 2015-01-01 B 0 0
4 2015-01-02 B 0 00
5 2015-01-03 B 0 000
6 2015-01-04 B 1 0001
7 2015-01-05 B 1 00011