Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用单个命令[Python-Pandas]获取所有列的数据类型?_Python_Pandas - Fatal编程技术网

如何使用单个命令[Python-Pandas]获取所有列的数据类型?

如何使用单个命令[Python-Pandas]获取所有列的数据类型?,python,pandas,Python,Pandas,我想查看存储在数据帧中的所有列的数据类型,而不需要对它们进行迭代。方法是什么?有一个很好的例子: 但是对于dtypes=object,它有点复杂(通常,它显然是string): 样本: df = pd.DataFrame({'strings':['a','d','f'], 'dicts':[{'a':4}, {'c':8}, {'e':9}], 'lists':[[4,8],[7,8],[3]],

我想查看存储在数据帧中的所有列的数据类型,而不需要对它们进行迭代。方法是什么?

有一个很好的例子:

但是对于
dtypes=object
,它有点复杂(通常,它显然是
string
):

样本:

df = pd.DataFrame({'strings':['a','d','f'],
                   'dicts':[{'a':4}, {'c':8}, {'e':9}],
                   'lists':[[4,8],[7,8],[3]],
                   'tuples':[(4,8),(7,8),(3,)],
                   'sets':[set([1,8]), set([7,3]), set([0,1])] })

print (df)
      dicts   lists    sets strings  tuples
0  {'a': 4}  [4, 8]  {8, 1}       a  (4, 8)
1  {'c': 8}  [7, 8]  {3, 7}       d  (7, 8)
2  {'e': 9}     [3]  {0, 1}       f    (3,)
所有值都具有相同的值:

但是
类型不同,如果需要循环检查:

for col in df:
    print (df[col].apply(type))

0    <class 'dict'>
1    <class 'dict'>
2    <class 'dict'>
Name: dicts, dtype: object
0    <class 'list'>
1    <class 'list'>
2    <class 'list'>
Name: lists, dtype: object
0    <class 'set'>
1    <class 'set'>
2    <class 'set'>
Name: sets, dtype: object
0    <class 'str'>
1    <class 'str'>
2    <class 'str'>
Name: strings, dtype: object
0    <class 'tuple'>
1    <class 'tuple'>
2    <class 'tuple'>
Name: tuples, dtype: object

使用DataFrame.info()方法

>>df.info()
范围索引:5个条目,0到4
数据列(共3列):
#列非空计数数据类型
---  ------     --------------  -----
0整数列5非空整数64
1文本列5非空对象
2浮点数第5列非空浮点数64
数据类型:float64(1)、int64(1)、object(1)
内存使用:248.0+字节
文件:

使用
df.dtypes
哇,这真的很有帮助,谢谢jerzaeli看到了那篇文档,它真的很有帮助。使用df.info()的这个答案比其他df.dtypes答案更好,因为dtypes属性不显示索引dtype
print (df.dtypes)
dicts      object
lists      object
sets       object
strings    object
tuples     object
dtype: object
for col in df:
    print (df[col].apply(type))

0    <class 'dict'>
1    <class 'dict'>
2    <class 'dict'>
Name: dicts, dtype: object
0    <class 'list'>
1    <class 'list'>
2    <class 'list'>
Name: lists, dtype: object
0    <class 'set'>
1    <class 'set'>
2    <class 'set'>
Name: sets, dtype: object
0    <class 'str'>
1    <class 'str'>
2    <class 'str'>
Name: strings, dtype: object
0    <class 'tuple'>
1    <class 'tuple'>
2    <class 'tuple'>
Name: tuples, dtype: object
print (type(df['strings'].iat[0]))
<class 'str'>

print (type(df['dicts'].iat[0]))
<class 'dict'>

print (type(df['lists'].iat[0]))
<class 'list'>

print (type(df['tuples'].iat[0]))
<class 'tuple'>

print (type(df['sets'].iat[0]))
<class 'set'>