字符串到日期时间的转换 Pandas - 什么都试过了
Conversion of Strings to Datetime Pandas - tried everything
我知道有很多类似的问题,但我很确定我已经尝试了我找到的所有方法
数据:
TimeStamp
10:34:30
10:35:30
10:36:30
10:37:30
我有两个不同的 .csv 文件,我正在尝试比较两个文件的时间以确定进一步的操作。
我想用.dt.hour
或.dt.min
来比较时间。这是我尝试过的:
类型始终保持为 str 或 float,并且 .dt.hour
或 .dt.min
不起作用
def csv_to_df(path, filename):
dateparse = lambda x: pd.datetime.strptime(x, '%H:%M:%S')
df = pd.read_csv(path + filename, skipinitialspace = True, parse_dates = True, date_parser = dateparse)
return df
后来我也尝试使用pd.to_datetime进行转换。那也没用。
df_sr4500.TimeStamp=pd.to_datetime(df_sr4500.TimeStamp).dt.time
print(df_sr4500.TimeStamp[1].dt.hour)
ERROR: AttributeError: 'datetime.time' object has no attribute 'dt'
IIUC
df.TimeStamp=pd.to_datetime(df.TimeStamp).dt.time
df.TimeStamp[1]
Out[115]: datetime.time(10, 35, 30)
df.TimeStamp[1].hour
Out[119]: 10
如果您需要转换新的列小时数
df.TimeStamp.apply(lambda x : x.hour)
Out[122]:
0 10
1 10
2 10
3 10
Name: TimeStamp, dtype: int64
df.TimeStamp = pd.to_datetime(df_sr4500.TimeStamp)
就足够了。
要从此列中获取小时或分钟,您需要以下内容:
[i.hour for i in df.TimeStamp]
注意:.dt
访问单个项目,但您正尝试使用整个系列访问它。
我知道有很多类似的问题,但我很确定我已经尝试了我找到的所有方法
数据:
TimeStamp
10:34:30
10:35:30
10:36:30
10:37:30
我有两个不同的 .csv 文件,我正在尝试比较两个文件的时间以确定进一步的操作。
我想用.dt.hour
或.dt.min
来比较时间。这是我尝试过的:
类型始终保持为 str 或 float,并且 .dt.hour
或 .dt.min
不起作用
def csv_to_df(path, filename):
dateparse = lambda x: pd.datetime.strptime(x, '%H:%M:%S')
df = pd.read_csv(path + filename, skipinitialspace = True, parse_dates = True, date_parser = dateparse)
return df
后来我也尝试使用pd.to_datetime进行转换。那也没用。
df_sr4500.TimeStamp=pd.to_datetime(df_sr4500.TimeStamp).dt.time
print(df_sr4500.TimeStamp[1].dt.hour)
ERROR: AttributeError: 'datetime.time' object has no attribute 'dt'
IIUC
df.TimeStamp=pd.to_datetime(df.TimeStamp).dt.time
df.TimeStamp[1]
Out[115]: datetime.time(10, 35, 30)
df.TimeStamp[1].hour
Out[119]: 10
如果您需要转换新的列小时数
df.TimeStamp.apply(lambda x : x.hour)
Out[122]:
0 10
1 10
2 10
3 10
Name: TimeStamp, dtype: int64
df.TimeStamp = pd.to_datetime(df_sr4500.TimeStamp)
就足够了。
要从此列中获取小时或分钟,您需要以下内容:
[i.hour for i in df.TimeStamp]
注意:.dt
访问单个项目,但您正尝试使用整个系列访问它。