/ / Python Pandas dodaje wiersze na podstawie brakujących wartości sekwencyjnych w timeseries - python, pandas, row

Pandy Pythona dodają wiersze na podstawie brakujących wartości sekwencyjnych w timeseries - python, panda, wiersz

Jestem nowy w pythonie i próbuję manipulować danymi w bibliotece pand. Mam taką bazę danych pand:

    Year  Value
0    91     1
1    93     4
2    94     7
3    95    10
4    98    13

I chcesz uzupełnić brakujące lata, tworząc wiersze z pustymi wartościami, jak poniżej:

    Year  Value
0    91     1
1    92     0
2    93     4
3    94     7
4    95    10
5    96     0
6    97     0
7    98    13

Jak to zrobić w Pythonie? (Chcę to zrobić, abym mógł kreślić wartości bez przeskakiwania lat)

Odpowiedzi:

6 dla odpowiedzi № 1

Stworzyłbym nową ramkę danych, która ma Rok jakoIndeks i obejmuje cały zakres dat, które należy uwzględnić. Następnie możesz po prostu ustawić wartości w dwóch ramkach danych, a indeks upewni się, że pasują do nich poprawne wiersze (musiałem użyć fillna, aby ustawić brakujące lata na zero, domyślnie będą ustawione na NaN):

df = pd.DataFrame({"Year":[91,93,94,95,98],"Value":[1,4,7,10,13]})
df.index = df.Year
df2 = pd.DataFrame({"Year":range(91,99), "Value":0})
df2.index = df2.Year

df2.Value = df.Value
df2= df2.fillna(0)
df2
Value  Year
Year
91        1    91
92        0    92
93        4    93
94        7    94
95       10    95
96        0    96
97        0    97
98       13    98

Wreszcie możesz użyć reset_index jeśli nie chcesz, aby Rok był twoim indeksem:

df2.drop("Year",1).reset_index()

Year  Value
0    91      1
1    92      0
2    93      4
3    94      7
4    95     10
5    96      0
6    97      0
7    98     13