如何解决pandas dtypes 不返回数据类型字符串或日期
我正在使用 Pandas 读取的 CSV 文件作为数据框,我想将每列的所有数据类型列表作为输出 - 这是我目前所拥有的 - 我遇到的问题是,对于所有人不是浮点数/整数的数据类型它只返回 dtype('O')
我的代码如下:
dataframe = pd.read_csv(filePath)
datatypes = dataframe.dtypes #here we find out how what the datatype is in a given column
datatypes_list = []
for x in datatypes:
datatypes_list.append(x)
datatypes_list
这给了我以下 csv
Position,Experience in Years,Salary,Starting Date
Middle Management,5,5584.10,2019-02-03
Lower Management,2,3925.52,2016-04-18
Upper Management,1,7174.46,2019-01-02
Middle Management,5461.25,2018-02-02
Middle Management,7,7471.43,2017-09-09
Upper Management,10,12021.31,2020-01-01
Lower Management,2921.92,2019-08-17
Middle Management,5932.94,2017-11-21
Upper Management,10192.14,2018-08-18
这个输出:
[dtype('O'),dtype('int64'),dtype('float64'),dtype('O')]
但我希望输出是这样的:
[dtype('string'),dtype('datetime')]
并且仅在相应列中存在不同的数据类型时才返回 dtype('O')
解决方法
对于您的 dtypes 数组,第一个位置已经可以解释为字符串 dtype,如在 Pandas 中,'o' 代表对象类型,这意味着 Pandas 已将其作为混合值读入(即不仅仅是单个原始数据类型,如一列所有整数)
参见 What is dtype('O'),in pandas? - tl;dr pandas 从 numpy 中获取 dtype(),这要求数据类型具有固定宽度,因此字符串存储为 numpy 指针数组,因此是对象
至于日期列,您只需要先将列转换为日期时间对象
dataframe['Starting Date'] = pd.to_datetime(dataframe['Starting Date'],infer_datetime_format=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。