我是python和panda框架的新手。 我试图通过使用几个列名来处理大型文件集(excel)和分组。 每个文件包含以下列;
var foo = new Span<byte>();
var bar = Encoding.ASCII.GetString(foo);
.....
在隐含日期列之后,当我列出数据类型时; 我得到浸入时间为对象。为什么?;
网站对象 储罐ID int64 产品对象 浸入时间对象 dtype:对象
我也收到以下错误; 为什么日期列在这里解释为字符串?我该怎么做才能克服这个问题?
Site Dip Time TankId Product
ABC 10/09/2019 18:07:33 p.m. 1 diesel
答案 0 :(得分:0)
您的时间已经是24小时制。为什么需要上午/下午?
也就是“下午”。即使您在read_excel中使用parse_dates参数,也可以使列成为“对象”类型。
当“ Dip Time”列中没有“ p.m.”时,解析日期有效。在里面。
Site Dip Time Tank ID Product
0 ABC 2019-10-09 18:07:00 1 Diesel
df2=pd.read_csv('C:\\Users\\Desktop\\check.csv', parse_dates=datecols)
df2.dtypes
Out[14]:
Site object
Dip Time datetime64[ns]
Tank ID int64
Product object
dtype: object
删除“ a.m / p.m”并使“ Dip Time”列成为日期时间类型的代码。
Site Dip Time Tank ID Product
0 ABC 10/09/2019 18:07:33 p.m 1 Diesel
df2['Dip Time']=df2['Dip Time'].str.replace('[a-z].m', '', regex=True).str.strip()
df2
Out[34]:
Site Dip Time Tank ID Product
0 ABC 10/09/2019 18:07:33 1 Diesel
df2.dtypes
Out[35]:
Site object
Dip Time object
Tank ID int64
Product object
dtype: object
import datetime
df2['Dip Time']=pd.to_datetime(df2['Dip Time'])
df2.dtypes
Out[38]:
Site object
Dip Time datetime64[ns]
Tank ID int64
Product object
dtype: object