我正在Python pandas上进行两个csv文件的比较,但是在有5个日期列的csv文件中,我已经在read_csv方法中使用了parse_ date =' dateofbirth ','lastupdates','dateofjoin','dateofresign,'endoftrade‘,但它只解析出生日期,而不是csv文件中的所有列。
代码:
csv_pandas=pd.read_csv("path of the csv file",parse_date=['dateofbirth','lastupdates','dateofjoin','dateofresign,'endoftrade'])
print(csv_pandas)CSV文件:
dateofbirth lastupdates dateofjoin dateofresign
05/06/2021 00:00:00PM 12/13/2021 12:00:00PM 12/13/2021 12:00:00PM 12/13/2021 12:00:00PM
column non-null count Dtype
------ ------------- ------
dateofbirth non-null object
dateofbirth non-null datetime64[ns]
dateofbirth non-null datetime64[ns]
dateofbirth non-null datetime64[ns]我只能转换对象数据类型列,其余的datetime64ns不能解析
我大约有160个csv文件,每个csv文件都有不同的列名,有没有人建议
发布于 2021-07-14 17:32:13
strptime()格式您尝试转换的所有列都存在于数据框中,因此测试列是否存在于作为**kwargs传递给csv_pandas = csv_pandas.assign(
**{
c: pd.to_datetime(csv_pandas[c], format="%Y-%m-%d %H:%M:%S:%f", errors="ignore")
for c in parse_date
if c in csv_pandas.select_dtypes("object").columns
}
).pipe(
lambda d: d.assign(
**{
c: pd.to_datetime(d[c], format="%m/%d/%Y %H:%M:%S%p", errors="ignore")
for c in parse_date
if c in d.select_dtypes("object").columns
}
)
)输出
csv_pandas.dtypes
dateofbirth datetime64[ns]
lastupdates datetime64[ns]
dateofjoin datetime64[ns]
dateofresign datetime64[ns]
dtype: objecthttps://stackoverflow.com/questions/68375032
复制相似问题