Próbuję wygenerować nową kolumnę w pandach DataFrame, która równa się wartościom w innej pandach DataFrame. Kiedy próbuję utworzyć nową kolumnę, otrzymuję NaNs dla nowych wartości kolumn.NaN wartości, gdy nowa kolumna została dodana do pandy DataFrame
Najpierw używam wywołanie API, aby uzyskać pewne dane, a „mydata” DataFrame jest jedna kolumna danych indeksowanych przez terminach
mydata = Quandl.get(["YAHOO/INDEX_MXX.4"],
trim_start="2001-04-01", trim_end="2014-03-31",
collapse="monthly")
Następny DataFrame dostaję od CSV z następującego kodu, a zawiera wiele kolumn danych z taką samą liczbą wierszy jak „MyData”
DWDATA = pandas.DataFrame.from_csv("filename",
header=0,
sep=',',
index_col=0,
parse_dates=True,
infer_datetime_format=True)
I spróbuj wygenerować nową kolumnę tak:
DWDATA['MXX'] = mydata.iloc[:,0]
Znów otrzymuję wartości NaN. Czy ktoś może mi pomóc zrozumieć, dlaczego to robi i jak rozwiązać? Z tego, co przeczytałem, wynika, że coś może być nie tak z indeksami. Indeksy są datami w każdym DataFrame, ale "mydata" ma daty końca miesiąca, a "DWDATA" ma daty początku miesiąca.
Jeśli indeks nie pokrywają się (jak opisujesz), wtedy naprawdę otrzymasz NaN. Będziesz musiał zmienić indeks jednego z nich, lub jeśli masz pewność, że liczba wierszy jest dokładnie równa, po prostu umieść wartości (bez indeksu) w nowej kolumnie ('mydata.iloc [:, 0] .values') – joris
Dodawanie ".values" działało! Dzięki @joris i zapamiętam ten fragment o indeksach, które muszą być równe w przyszłości! – gtnbz2nite