a b
0 0 0
1 0 0
2 1 0
3 -1 1
4 -1 -1
5 0 -1
6 0 -1
7 0 -1
8 0 0
9 0 0
10 -1 0
11 0 -1
12 0 -1
13 1 -1
14 0 1
< /code>
logik: < /p>
Ich erkläre die Logik anhand einiger Beispiele: < /p>
Ich möchte Spalte B für df < /p>
Ich möchte ein Fenster mit drei Zeilen mit drei Zeilen und Access -0 -Wert. Wenn alle Werte 0 sind, ist 'B' 0. In diesem Fall beträgt der letzte Nicht -Null -Wert 1. Spalte B ist also 1 < /p>
zum Beispiel für Zeilennummer 4. Der letzte Nullwert ist -1, also ist Spalte B -1 < /p>
Ich möchte dasselbe für alle Zeilen tun. < /P>
Das habe ich bisher ausprobiert. Ich denke, es muss einen besseren Weg geben. < /P>
import pandas as pd
df = pd.DataFrame({
'a': [0, 0, 1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0]
})
def last_nonzero(x):
# x is a pandas Series representing a window
nonzero = x[x != 0]
if not nonzero.empty:
# Return the last non-zero value in the window (i.e. the one closest to the current row)
return nonzero.iloc[-1]
return 0
# Shift by 1 so that the rolling window looks only at previous rows.
# Use a window size of 3 and min_periods=1 to allow early rows.
df['b'] = df['a'].shift(1).rolling(window=3, min_periods=1).apply(last_nonzero, raw=False).astype(int)
Dies ist mein Datenrahmen: < /p> [code]df = pd.DataFrame({ 'a': [0, 0, 1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0] }) [/code] Die erwartete Ausgabe erstellt Spalte B : [code] a b 0 0 0 1 0 0 2 1 0 3 -1 1 4 -1 -1 5 0 -1 6 0 -1 7 0 -1 8 0 0 9 0 0 10 -1 0 11 0 -1 12 0 -1 13 1 -1 14 0 1 < /code> logik: < /p> Ich erkläre die Logik anhand einiger Beispiele: < /p> Ich möchte Spalte B für df < /p> Ich möchte ein Fenster mit drei Zeilen mit drei Zeilen und Access -0 -Wert. Wenn alle Werte 0 sind, ist 'B' 0. In diesem Fall beträgt der letzte Nicht -Null -Wert 1. Spalte B ist also 1 < /p> zum Beispiel für Zeilennummer 4. Der letzte Nullwert ist -1, also ist Spalte B -1 < /p> Ich möchte dasselbe für alle Zeilen tun. < /P> Das habe ich bisher ausprobiert. Ich denke, es muss einen besseren Weg geben. < /P> import pandas as pd df = pd.DataFrame({ 'a': [0, 0, 1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0] })
def last_nonzero(x): # x is a pandas Series representing a window nonzero = x[x != 0] if not nonzero.empty: # Return the last non-zero value in the window (i.e. the one closest to the current row) return nonzero.iloc[-1] return 0
# Shift by 1 so that the rolling window looks only at previous rows. # Use a window size of 3 and min_periods=1 to allow early rows. df['b'] = df['a'].shift(1).rolling(window=3, min_periods=1).apply(last_nonzero, raw=False).astype(int) [/code]
Was ich versuche, ist, mithilfe der nativen Android-Bibliotheken ein Startdatum und ein letztes Datum des letzten Monats sowie das erste Datum des Jahres zu ermitteln. Ich habe es mit LocalDate...
Ich habe zwei Prozesse – eine Starter-App und eine untergeordnete App (beliebige Qt-Anwendung)
Starter-App-Code:
int main(int argc, char * argv[])
{
namespace bp = boost::process::v1;
Ich muss eine Konsolenanwendung (möglicherweise in Java) mit ncurses-ähnlicher Funktionalität implementieren (z. B. Navigieren in einem Menü und Neuzeichnen des gesamten Bildschirms).
Ich versuche, den Wert aus der letzten Zeile einer DF-Spalte zu übernehmen und ihn durch den ersten Wert zu ersetzen. Ich gebe einen Wertfehler zurück.
import pandas as pd
df = pd.DataFrame({'name':...