我们如何从数据框架中分别检测date和datetime列?



我目前使用pd。Read_csv读取数据帧。它不检测date和datetime列,而是将其作为对象检出。因此,我使用下面的代码片段来查找日期/datetime列:

df = pd.read_csv(filename)
collist = []
for col in df.columns:
if df[col].dtype == 'object':
try:
df[col] = pd.to_datetime(df[col])
collist.append(col)
except ValueError:
pass
return collist

但是我的用例需要我分别拥有日期列和datetime列。是否有一种方法,我们可以过滤出日期和日期时间列分开?

import pandas as pd
df = pd.DataFrame({
'date1':['4/10/2021', '4/11/2021','4/12/2021'],
'date_time1': ['4/11/2021 13:23:45', '4/11/2021 13:23:45', '4/11/2021 13:23:45'],
'Name': ['Bob', 'Jane', 'Alice'],
'date_time2': ['4/12/2021 13:23:45', '4/13/2021 13:23:45', '4/14/2021 13:23:45']
})

所以,日期列列表应该给我[date1]和日期时间列列表应该给我[date_time1,date_time2]

由于您已经读取了数据并将所有内容转换为datetime并将其存储在collist - (datecollist)中,使用下面的代码片段来解析这些时间戳,并区分date和datetime。

datetime_col_list = []
df = pd.read_csv(filename, delimiter=delimiter, encoding=encoding, parse_dates=date_collist)
for col in date_collist:
first_index = df[col].first_valid_index()
first_valid_value = df[col].loc[first_index]
if (str(first_valid_value).split(' ')[1]) != '00:00:00':
datetime_col_list.append(col)
date_list = list (set(date_collist) - set(datetime_col_list))
print(date_list)
print(datetime_col_list)

相关内容

最新更新