Saya memiliki kerangka data di panda dan saya mencoba mencari tahu apa jenis nilainya. Saya tidak yakin apa jenis kolomnya 'Test'. Namun, saat saya lari myFrame['Test'].dtype, saya mendapatkan;
Karakter pertama menentukan jenis data dan karakter yang tersisa menentukan jumlah byte per item, kecuali Unicode, di mana itu diartikan sebagai jumlah karakter. Ukuran item harus sesuai dengan tipe yang ada, atau kesalahan akan muncul. Jenis yang didukung adalah untuk jenis yang sudah ada, atau kesalahan akan muncul. Jenis yang didukung adalah:
'b' boolean
'i'(signed) integer
'u' unsigned integer
'f' floating-point
'c' complex-floating point
'O'(Python) objects
'S','a'(byte-)string
'U'Unicode'V' raw data (void)
Anda dapat menafsirkan yang terakhir sebagai objek Pandas dtype('O')atau Pandas yang merupakan jenis string Python, dan ini terkait dengan Numpy string_, atau unicode_types.
Pandas dtype Python type NumPy type Usage
object str string_, unicode_ Text
Seperti Don Quixote di pantat, Pandas ada di Numpy dan Numpy memahami arsitektur yang mendasari sistem Anda dan menggunakan kelas numpy.dtype untuk itu.
Objek tipe data adalah turunan dari numpy.dtypekelas yang memahami tipe data dengan lebih tepat termasuk:
Jenis data (integer, float, objek Python, dll.)
Ukuran data (berapa byte di misalnya integer)
Urutan byte data (little-endian atau big-endian)
Jika tipe data terstruktur, agregat tipe data lain, (misalnya, mendeskripsikan item array yang terdiri dari integer dan float)
Apa nama dari "bidang" struktur
Apa tipe data setiap bidang
Bagian mana dari blok memori yang diambil setiap bidang
Jika tipe datanya adalah sub-larik, apa bentuk dan tipe datanya
Dalam konteks pertanyaan ini dtypemilik pands dan numpy dan secara khusus dtype('O')berarti kita mengharapkan string.
Berikut beberapa kode untuk pengujian dengan penjelasannya: Jika kita memiliki dataset sebagai kamus
import pandas as pd
import numpy as np
from pandas importTimestamp
data={'id':{0:1,1:2,2:3,3:4,4:5},'date':{0:Timestamp('2018-12-12 00:00:00'),1:Timestamp('2018-12-12 00:00:00'),2:Timestamp('2018-12-12 00:00:00'),3:Timestamp('2018-12-12 00:00:00'),4:Timestamp('2018-12-12 00:00:00')},'role':{0:'Support',1:'Marketing',2:'Business Development',3:'Sales',4:'Engineering'},'num':{0:123,1:234,2:345,3:456,4:567},'fnum':{0:3.14,1:2.14,2:-0.14,3:41.3,4:3.14}}
df = pd.DataFrame.from_dict(data)#now we have a dataframeprint(df)print(df.dtypes)
Baris terakhir akan memeriksa kerangka data dan mencatat hasilnya:
id date role num fnum
012018-12-12Support1233.14122018-12-12Marketing2342.14232018-12-12BusinessDevelopment345-0.14342018-12-12Sales45641.30452018-12-12Engineering5673.14
id int64
date datetime64[ns]
role object
num int64
fnum float64
dtype: object
Semua jenis berbeda dtypes
df.iloc[1,:]= np.nan
df.iloc[2,:]=None
Tetapi jika kita mencoba untuk mengatur np.nanatau Noneini tidak akan mempengaruhi dtype kolom asli. Outputnya akan seperti ini:
print(df)print(df.dtypes)
id date role num fnum
01.02018-12-12Support123.03.141NaNNaTNaNNaNNaN2NaNNaTNoneNaNNaN34.02018-12-12Sales456.041.3045.02018-12-12Engineering567.03.14
id float64
date datetime64[ns]
role object
num float64
fnum float64
dtype: object
Jadi np.nanatau Nonetidak akan mengubah kolom dtype, kecuali kita mengatur semua baris kolom menjadi np.nanatau None. Dalam hal ini, kolom akan menjadi float64atauobject masing masing.
Anda juga dapat mencoba menyetel baris tunggal:
df.iloc[3,:]=0# will convert datetime to object only
df.iloc[4,:]=''# will convert all columns to object
Dan yang perlu diperhatikan disini, jika kita mengatur string di dalam kolom non string itu akan menjadi string atau objek dtype.
#Loading a csv file as a dataframeimport pandas as pd
train_df = pd.read_csv('train.csv')
col_name ='Name of Employee'#Checking the datatype of column name
train_df[col_name].dtype
#Instead try printing the same thingprint train_df[col_name].dtype
Baris pertama kembali: dtype('O')
Baris dengan pernyataan cetak mengembalikan yang berikut: object
pandas
bebas menggunakanobject
dtype ketika kolom berisi nilai campuran (string, angka, nan).Jawaban:
Itu berarti:
Sumber .
Jawaban lain membantu jika perlu diperiksa
type
.sumber
Ketika kamu melihat
dtype('O')
di dalam dataframe, ini berarti string Pandas.apa yang
dtype
?Sesuatu yang dimiliki
pandas
ataunumpy
, atau keduanya, atau sesuatu yang lain? Jika kita memeriksa kode panda:Ini akan menghasilkan seperti ini:
Anda dapat menafsirkan yang terakhir sebagai objek Pandas
dtype('O')
atau Pandas yang merupakan jenis string Python, dan ini terkait dengan Numpystring_
, atauunicode_
types.Seperti Don Quixote di pantat, Pandas ada di Numpy dan Numpy memahami arsitektur yang mendasari sistem Anda dan menggunakan kelas
numpy.dtype
untuk itu.Objek tipe data adalah turunan dari
numpy.dtype
kelas yang memahami tipe data dengan lebih tepat termasuk:Dalam konteks pertanyaan ini
dtype
milik pands dan numpy dan secara khususdtype('O')
berarti kita mengharapkan string.Berikut beberapa kode untuk pengujian dengan penjelasannya: Jika kita memiliki dataset sebagai kamus
Baris terakhir akan memeriksa kerangka data dan mencatat hasilnya:
Semua jenis berbeda
dtypes
Tetapi jika kita mencoba untuk mengatur
np.nan
atauNone
ini tidak akan mempengaruhi dtype kolom asli. Outputnya akan seperti ini:Jadi
np.nan
atauNone
tidak akan mengubah kolomdtype
, kecuali kita mengatur semua baris kolom menjadinp.nan
atauNone
. Dalam hal ini, kolom akan menjadifloat64
atauobject
masing masing.Anda juga dapat mencoba menyetel baris tunggal:
Dan yang perlu diperhatikan disini, jika kita mengatur string di dalam kolom non string itu akan menjadi string atau objek
dtype
.sumber
Artinya "objek python", yaitu bukan salah satu jenis skalar bawaan yang didukung oleh numpy.
sumber
'O' berarti objek .
Baris pertama kembali:
dtype('O')
Baris dengan pernyataan cetak mengembalikan yang berikut:
object
sumber