Tôi có một bộ dữ liệu như thế này:
Mẫu dữ liệu mẫu
import pandas as pd
df = pd.DataFrame({
    'names': ['A','B','C','D','E','F','G','H','I','J','K','L'],
    'col1': [0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0],
    'col2': [0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0]})
Tôi muốn thay thế một số 0trong col1và col2bằng 1, nhưng không thay thế một số 0nếu ba hoặc nhiều hơn 0liên tiếp trong cùng một cột. Làm thế nào điều này có thể được thực hiện với gấu trúc?
Bộ dữ liệu gốc:
names   col1    col2
A   0   0
B   1   0
C   0   0
D   1   0
E   1   1
F   1   0
G   0   1
H   0   0
I   0   1
J   1   0
K   0   0
L   0   0
Bộ dữ liệu mong muốn:
names   col1    col2
A   1   0
B   1   0
C   1   0
D   1   0
E   1   1
F   1   1
G   0   1
H   0   1
I   0   1
J   1   0
K   1   0
L   1   0
df.loc[(df['col1']+df['col1'].shift(1)+df['col1'].shift(2)>0)&(df['col1']+df['col1'].shift(1)+df['col1'].shift(-1)>0)&(df['col1']+df['col1'].shift(-1)+df['col1'].shift(-2)>0)]=1  tuy nhiên, điều này khiến hai hàng đầu tiên và cuối cùng không bị ảnh hưởng
                
col2?