假设我们有一个pandas系列,它包含以下混合数据类型(string、int和datetime)
如果我检查diff_系列(diff_series.dtype
)上的dtype,它将显示它是预期的对象。我想得到序列中不同的数据类型。我有下面的列表理解,它使我在一个系列的独特的数据类型。
import datetime
import pandas as pd
>> diff_series = pd.Series(['1','2',3,"random_text",datetime.datetime.now()])
>> set([type(i) for i in diff_series])
set([<type 'str'>, <type 'datetime.datetime'>, <type 'int'>])
但我觉得应该有一个更有效的(泛音)方式来做这件事?
我试过了
>> diff_series.get_dtype_counts()
object 1
dtype: int64
这不是我要找的。有什么想法吗?
最佳答案
我们可以这样做:
In [4]: diff_series.map(type).value_counts()
Out[4]:
<class 'str'> 3
<class 'datetime.datetime'> 1
<class 'int'> 1
dtype: int64
或者,不妨“全力以赴”:
In [5]: diff_series.map(type).value_counts().index.values
Out[5]: array([<class 'str'>, <class 'datetime.datetime'>, <class 'int'>], dtype=object)