0
我經常發現自己在數據框的列中更改數據類型,在日期時間和timedelta類型之間轉換,或者字符串和時間等。因此,我需要一種方法檢查每個列的數據類型。每列包含哪些類型的對象:獲取比dtypes更多的細節
df.dtypes適用於數字對象類型,但對於其他所有內容只顯示「對象」。那麼我怎麼才能找出什麼樣的對象呢?
我經常發現自己在數據框的列中更改數據類型,在日期時間和timedelta類型之間轉換,或者字符串和時間等。因此,我需要一種方法檢查每個列的數據類型。每列包含哪些類型的對象:獲取比dtypes更多的細節
df.dtypes適用於數字對象類型,但對於其他所有內容只顯示「對象」。那麼我怎麼才能找出什麼樣的對象呢?
您可以檢查其中一個單元格以查找類型。
import pandas as pd
#assume some kind of string and int data
records = [["a",1], ["b",2]]
df = pd.DataFrame(records)
df.dtypes
>0 object
>1 int64
>dtype: object
因此熊貓知道第1列是整數存儲,但列0顯示爲對象。
df[0].dtype
>dtype('O')
這仍然顯示「對象」存儲。
type(df[0][0])
>str
瞧。
當然,這取決於您的確切數據結構。如果你在列中的任何地方都有NaN,那麼它有時會對轉換後的類型造成嚴重破壞(浩浩蕩蕩,因爲它並不總是清楚爲什麼它最終會成爲對象存儲)。
我認爲這很重要,熊貓不知道它是什麼類型的對象,並將它作爲一種blob存儲。 – Will
timedelta64和datetime64是完整的dtypes - 這些都不表示爲對象 - 請在需要轉換的位置顯示示例 – Jeff