2017-11-05 3 views
-1

Ich habe eine pandas.dataframe Spalte, wo meine ersten vier Werte in anderen Zellen bis zu 200 Zeilen darunter in der gleichen Reihenfolge in der gleichen Spalte gefüllt werden sollten. Ich kann es per Schleife (für) tun, aber es passt nicht für den Zweck, da ich viele dieser Schleifen machen werde und erhebliche CPU-Zeit benötigen wird. Ich bin auf der Suche nach etwas viel effizienter (kann wie append oder concat?). Hoffe meine Frage ist klar!Füllen pandas dataframe Zellen mit spezifischen Werten

Das ist mein Eingang:

index y 
0 0 
1 5 
2 5 
3 0 
4 NaN 
5 NaN 
6 NaN 
7 NaN 
8 NaN 
... 
1456 NaN 

Das ist, was ich zu bekommen:

index y 
0 0 
1 5 
2 5 
3 0 
4 0 
5 5 
6 5 
7 0 
8 0 
... 
1456 NaN 

Danke für die Hilfe!

P.S. Danke für Kommentare zur Aktualisierung der Frage !!!

+0

Hey ich sehe, können Sie sich hier neu sind. Herzlich willkommen!! Sie sollten dies vor der Veröffentlichung lesen: https://stackoverflow.com/help/how-to-ask. Genauer gesagt: Wie wäre es, einige Beispieldaten und die erwartete Ausgabe bereitzustellen? –

+0

aktualisieren Sie die Frage mit Beispieldaten ' – pyd

Antwort

0

Können sagen, wir Ihre DataFrame wie folgt erstellen:

import pandas as pd 
import numpy as np 
patern = [0,5,5,0] 
df = pd.DataFrame(patern + [np.nan]*1453) 

Ihre DataFrame wäre dann:

>>> df 
     0 
0  0.0 
1  5.0 
2  5.0 
3  0.0 
4  NaN 
5  NaN 
... ... 
1452 NaN 
1453 NaN 
1454 NaN 
1455 NaN 
1456 NaN 

[1457 rows x 1 columns] 

Sie können dann die DataFrame mit dem oben patern füllen mit folgenden Code an die Leitung 200 mit fillna Funktion:

df_out = df.fillna(pd.DataFrame(patern*(200/len(patern)))) 

Dann wird Ihr Ausgang DataFrame wäre wie:

>>> df_out 
     0 
0  0.0 
1  5.0 
2  5.0 
3  0.0 
4  0.0 
5  5.0 
6  5.0 
7  0.0 
8  0.0 
9  5.0 
10 5.0 
... ... 
1452 NaN 
1453 NaN 
1454 NaN 
1455 NaN 
1456 NaN 

[1457 rows x 1 columns] 

Wo die folgenden Elemente bestimmen die Grenze Sie wollen:

>>> df_out.loc[199] 
0 0.0 
Name: 199, dtype: float64 
>>> df_out.loc[200] 
0 NaN 
Name: 200, dtype: float64 
Verwandte Themen