Ich bin neu in Pandas.I will die Zahlen in den Spalten ersetzen auf Monatszähler Spalte in jeder Zeile jeInhalt in Spalten in jeder Zeile, je nach Zustand in einer anderen Spalte Ersetzen (Pandas)
CROSS (PUT X) auf die Spalten Werte in Abhängigkeit von MONTH_COUNTER
IF MONTH_COUNTER 1 ist eine Quer KEINE KOLUMNE:
2 CROSS DEC,JAN:
3 CROSS DEC,JAN,FEB:
4 CROSS DEC,JAN,FEB,MARCH:
5 CROSS DEC,JAN,FEB,MARCH,APRIL:
6 CROSS DEC,JAN,FEB,MARCH,APRIL
Meine Datenrahmen Millionen von Zeilen hat Dies ist ein Beispiel (Binary Aktivität)
DEC JAN FEB MARCH APRIL MAY Month_Counter
0 0 0 0 1 0 1 3
1 0 0 1 1 0 1 3
2 0 0 0 0 1 1 5
3 1 0 0 0 1 1 1
4 0 1 1 1 1 1 1
5 0 1 1 1 1 0 2
6 1 1 0 0 0 0 1
7 0 0 0 0 0 1 6
8 1 0 0 1 0 0 1
9 0 0 0 1 1 0 4
Das sind meine beiden Funktionen (Stike + Strike1), aber sie alle kreuzen ganzen Monat, wenn ich die Funktion aufrufen
def Strike(df):
df['Month_Counter']= df['Month_Counter'].astype(int)
m=df['Month_Counter'].tolist()
n=[i for i,val in enumerate(m)]
k= pd.Series([m[i] for i in n])
s=(k.size)-1
for i in range(df.shape[0]):
for j in range(0,s):
if k[j]>1:
df.iloc[:,0:k[j]]=df.replace(df.iloc[:,0:k[j]],'X')
return df
def Strike1(df):
Month_Counter = df['Month_Counter'].tolist()
for i in Month_Counter:
if i > 1 :
df=df.replace(df.iloc[:,0:i],'X')
return df
df1=Strike(df1)
Druck df1.head (20) .to_string()
sie produzieren Die folgenden Ergebnisse helfen mir bitte, wo irre ich ??
DEC JAN FEB MARCH APRIL MAY Month_Counter
0 X X X X X X 3
1 X X X X X X 3
2 X X X X X X 5
3 X X X X X X 1
4 X X X X X X 1
5 X X X X X X 2
6 X X X X X X 1
7 X X X X X X 6
8 X X X X X X 1
9 X X X X X X 4
Dies ist die Ausgabe I
wollenDEC JAN FEB MARCH APRIL MAY Month_Counter
0 X X X 1 0 1 3
1 X X X 1 0 1 3
2 X X X X X 1 5
3 1 0 0 0 1 1 1
4 0 1 1 1 1 1 1
5 X X 1 1 1 0 2
6 1 1 0 0 0 0 1
7 X X X X X X 6
8 1 0 0 1 0 0 1
9 X X X X 1 0 4
Danke, ich mag auch die Anzahl von aufeinanderfolgenden Nullen in einem zählen Zeile nach dem Überqueren der diese Monat, versuche ich zu verwenden Schichtfunktion ich scheitern, wie in Zeile 3, 3 Nullen, Zeile 6, 2 Nullen, Zeile 8 2 Nullen –