2014-02-27 26 views
0

我經常發現自己在數據框的列中更改數據類型,在日期時間和timedelta類型之間轉換,或者字符串和時間等。因此,我需要一種方法檢查每個列的數據類型。每列包含哪些類型的對象:獲取比dtypes更多的細節

df.dtypes適用於數字對象類型,但對於其他所有內容只顯示「對象」。那麼我怎麼才能找出什麼樣的對象呢?

+0

我認爲這很重要,熊貓不知道它是什麼類型的對象,並將它作爲一種blob存儲。 – Will

+0

timedelta64和datetime64是完整的dtypes - 這些都不表示爲對象 - 請在需要轉換的位置顯示示例 – Jeff

回答

1

您可以檢查其中一個單元格以查找類型。

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,那麼它有時會對轉換後的類型造成嚴重破壞(浩浩蕩蕩,因爲它並不總是清楚爲什麼它最終會成爲對象存儲)。

相關問題