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 № 1Stworzył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