python 基于另一个只有1/0的df构建一个df

sr4lhrrt  于 11个月前  发布在  Python
关注(0)|答案(2)|浏览(81)

我有一个只有1/0的df。我想建立一个具有相同形状的df。我想考虑前两个1的情况下,我们有连续的1。例如,在一个情况下,我们有0,0,1,1,1,0,0我想把它转换为0,0,1,1,0,0,0,0。这里是一个例子,

import pandas as pd

df_dr = pd.DataFrame()
df_dr['0'] = [0,0]
df_dr['1'] = [1,0]
df_dr['2'] = [1,1]
df_dr['3'] = [1,1]
df_dr['4'] = [0,1]
df_dr['5'] = [1,0]
df_dr['6'] = [1,0]
df_dr['7'] = [1,0]
df_dr['8'] = [1,1]
df_dr['9'] = [0,1]
df_dr['10'] = [0,1]
df_dr['11'] = [0,1]
df_dr['12'] = [0,1]

字符串
这里是输出:

0   1   2   3   4   5   6   7   8   9   10  11  12
0   0   1   1   0   0   1   1   0   0   0   0   0   0
1   0   0   1   1   0   0   0   0   1   1   0   0   0


你能帮我吗?谢谢

lokaqttq

lokaqttq1#

IIUC,试试这样的东西:

df_dr.eq(0).cumsum(1).T.apply(lambda x: x.groupby(x).cumcount().isin([1,2])).astype(int).T

字符串
输出量:

0  1  2  3  4  5  6  7  8  9  10  11  12
0  0  1  1  0  0  1  1  0  0  0   0   0   0
1  0  0  1  1  0  0  0  0  1  1   0   0   0


方法二:

df_dr.eq(0).cumsum(1).apply(lambda x: x.groupby(x).cumcount(), axis=1).isin([1,2]).astype(int)

相关问题