我有一个 csv,我想将其读入 pandas 数据框并进行分析。一列称为“日期”,可以使用以下方法轻松转换为日期时间类型:
pd.to_datetime(df.Datum, format='%Y%m%d')
但是该列不包含与该行关联的时间。时间(出于某种未知原因)包含在另一列的字符串中,相当于“评论”列。 “评论”列中的示例条目类似于以下字符串:
'Passnumber:123 19-05-2016 21:58 Transactie:123A12 Term:AABBC'
我想提取“Transactie”一词之前的时间,在本例中为 21:58。这可能在 Pandas 中实现,还是我需要一个更通用的正则表达式包?
请您参考如下方法:
您可以使用 pandas string manipulation pd.Series.str 向量函数。例如,
In[1]: df = pd.DataFrame({"Date": ["20160519", "20160519"],
"Datum": ['Passnumber:123 19-05-2016 21:58 Transactie:123A12 Term:AABBC',
'Passnumber:123 19-05-2016 22:58 Transactie:123A12 Term:AABBC']})
In[2]: df.Datum.astype(str).str.split(pat=' ', expand=True)[2]
Out[2]:
0 21:58
1 22:58
Name: 2, dtype: object
