Python 如何在没有dtype函数的情况下提取数据类型列

Python 如何在没有dtype函数的情况下提取数据类型列,python,python-3.x,pandas,Python,Python 3.x,Pandas,目前,我正在使用dtype函数提取每列的数据类型。我正在尝试在不使用dtype函数的情况下提取数据类型,并在dict中创建一个结果,其中key作为列名,value作为数据类型 Example Import pandas as pd df=pd.read_excel(file,dtype=object) 我将每个数据作为字符串加载,因为数据有一些Nan值和#N/A值,所以会自动将int转换为float,以防止这种转换,我将数据作为对象加载 Expected output format wit

目前,我正在使用dtype函数提取每列的数据类型。我正在尝试在不使用dtype函数的情况下提取数据类型,并在dict中创建一个结果,其中key作为列名,value作为数据类型

Example 
Import pandas as pd
df=pd.read_excel(file,dtype=object)

我将每个数据作为字符串加载,因为数据有一些Nan值和#N/A值,所以会自动将int转换为float,以防止这种转换,我将数据作为对象加载

Expected output format with sample data.

A   B   C   D   E         f
1.0 3  Nan ram  1-09-2019 2
2.0 4  roh raj  2-08-2020 3
NaN 3.0 ro rax  3/09/2020 4

Result :
{'A':'float','B':'float','C':'string','D':'string','E':'datetime','f':'int'}

您能给我一些建议或示例,说明我如何在不使用dtype函数的情况下处理这个预期输出。

不要将所有内容都作为字符串导入,然后尝试重新创建轮子。相反,让pandas在导入时推断数据类型,然后将列推断为最佳类型(日期列必须进行明确转换,或者在导入时指示它们)

结果:

      A  B    C    D          E  f
0     1  3  Nan  ram 2019-01-09  2
1     2  4  roh  raj 2020-02-08  3
2  <NA>  3   ro  rax 2020-03-09  4

请你澄清一下好吗?您不希望预期结果中的第一个to列为“int”吗?Pandas有一个pd.to_numeric()函数,允许您将任何数值列向下转换为float/int,对于包含日期的对象列,有一个pd.to_datetime()函数。此外,您可以在使用read_csv()时指定每列的数据类型。这难道不能解决你的问题吗?@flow\u me\u over1我已经尝试了所有这些,然后我就要放弃所有这些。
      A  B    C    D          E  f
0     1  3  Nan  ram 2019-01-09  2
1     2  4  roh  raj 2020-02-08  3
2  <NA>  3   ro  rax 2020-03-09  4
A             Int64
B             Int64
C            string
D            string
E    datetime64[ns]
f             Int64