আমার এই জাতীয় ডেটাসেট রয়েছে:
নমুনা ডেটাফ্রেম
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]})
আমি কয়েকটি 0
এর মধ্যে col1
এবং এর col2
সাথে প্রতিস্থাপন করতে চাই 1
, তবে একই কলামে 0
যদি তিন বা ততোধিক সংখ্যক 0
ধারাবাহিক হয় তবে এর প্রতিস্থাপন করব না । পান্ডা দিয়ে এটি কীভাবে করা যায়?
মূল ডেটাসেট:
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
পছন্দসই ডেটাসেট:
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
তবে এটি প্রথম এবং শেষের দুটি সারিটি অচ্ছুত রেখে দেয়
col2
?