chcę przynieść dane do DataFrame pandy i chcę przypisać dtypes dla każdej kolumny z importu. Chcę być w stanie to zrobić w przypadku większych zbiorów danych z wielu kolumn, ale jako przykład:Jak ustawić dtypes przez kolumnę w Pandy DataFrame
myarray = np.random.randint(0,5,size=(2,2))
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype=[float,int])
mydf.dtypes
wyniki:
TypeError: data type not understood
Próbowałem kilka innych metod, takich jak:
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype={'a': int})
TypeError: object of type 'type' has no len()
Jeśli wstawię dtype=(float,int)
, zastosuje on format float do obu kolumn.
Na koniec chciałbym tylko móc go przekazać listę typów danych w ten sam sposób mogę to lista nazw kolumn Pass.
Argument 'dtype' powinien być ważny dtype numpy (i dtypes strukturyzowane nie są obsługiwane), więc lista lub dict nie będzie działać. Możliwym sposobem jest wykonanie atrapy dla każdej kolumny osobno. Lub najpierw utwórz strukturę numpy array i przekaż ją do DataFrame. – joris
Wiedziałem, że mogę przypisać każdy indywidualnie w pętli, ale jestem zaskoczony dtype = nie był wystarczająco elastyczny, aby pomieścić listę. Dzięki za odpowiedź choć dobry, aby uzyskać potwierdzenie :) – Chris
https://github.com/pydata/pandas/issues/4464 jest obecnie kwestią otwartą do tego (jeśli chcesz zrobić żądania ściągania byłoby świetnie) – Jeff