我有一个数据框,其中一列包含以下格式的字符串:[{"assignedAgentId": "15", "assignedFullName": "Virtual Assistant", "interactionTime": "2023-03-15 18:39:42.443+0000", "interactiveSequence": 1, "dialogId": "fcf12345-e2d-4e2c-be5t-ed2bcf1831gh"}, {"assignedAgentId": "16", "assignedAgentFullName": "S", "interactionTime": "2023-03-16 08:00:50.500+0000", "dialogId": "fcf12345-e2d-4e2c-be5t-ed2bcf1831gh"}]
我希望能够将最后一次出现的“interactionTime”之后的前19个字符提取到一个新列中,因此上面的示例将返回:
2023-03-16 08:00:50
我知道我可以从右边拆分一个字符串,使用:
result=line.rsplit('interactionTime',1)
print('This is the result:', result[1])
但是,我不确定如何返回后的前19个字符,并将它们存储在一个名为“交互时间”的新 Dataframe 列中
我试过:
df2=df1['interaction Time'].str.split("InteractionTime", n=1, expand=True)
但是,这将返回一列Nan。
5条答案
按热度按时间2ic8powd1#
你可以这样做。
输出
uxhixvfz2#
该列似乎是一个完全有效的
JSON
的列表。你可以将Json加载到一个有效的Python结构(一个dicts列表)中,获取最后一项(用
[-1]
索引),然后获取从interactionTime
值的开始到19([:19]
)的元素:这就是说...处理完时区,时间偏移等,当你有一个非常好的有效日期时间对象时,你确定你想失去所有有趣的信息吗?当然,你知道得更好,但是...不知道...当你只需要使用
pd.to_datetime
时,让我很难过:ehxuflar3#
考虑将它们解析为datetime示例!
自定义显示格式
从开始日期开始计算秒数的方便性示例
kupeojn64#
您应该考虑更改时间格式,而不是提取前19个字符,如下所示:
bakd9h0s5#
感谢所有提供答案的人,特别是@BorrajaX,他指出了JSON格式。
使用他的方法给了我一个'字符串索引必须是整数'的错误,但它确实帮助我产生了以下内容,实现了我所需要的: