<p>注意,上面的答案将包括DateTime、TimeStamp、Category和其他数据类型。</p>
<p>使用<code>object</code>更具限制性(尽管我不确定其他<code>dtypes</code>是否也属于<code>object</code>类型):</p>
<ol>
<li><p>创建数据帧:</p>
<pre><code>df = pd.DataFrame({
'a': ['a','b','c','d'],
'b': [1, 'b', 'c', 2],
'c': [np.nan, 2, 3, 4],
'd': ['A', 'B', 'B', 'A'],
'e': pd.to_datetime('today')})
df['d'] = df['d'].astype('category')
</code></pre></li>
</ol>
<p>会是这样的:</p>
<pre><code> a b c d e
0 a 1 NaN A 2018-05-17
1 b b 2.0 B 2018-05-17
2 c c 3.0 B 2018-05-17
3 d 2 4.0 A 2018-05-17
</code></pre>
<ol start=“2”>
<li><p>您可以检查调用<code>dtypes</code>的类型:</p>
<pre><code>df.dtypes
a object
b object
c float64
d category
e datetime64[ns]
dtype: object
</code></pre></li>
<li><p>可以使用<code>items()</code>方法列出字符串列,并通过<code>object</code>进行筛选:</p>
<pre><code>> [ col for col, dt in df.dtypes.items() if dt == object]
['a', 'b']
</code></pre></li>
<li><p>或者,您可以使用“选择数据类型”来显示仅包含以下字符串的数据帧:</p>
<pre><code>df.select_dtypes(include=[object])
a b
0 a 1
1 b b
2 c c
3 d 2
</code></pre></li>
</ol>