提取子字符串并转换为datetime python

2024-10-02 04:33:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,df

data = [{0: 18, 1: '(Responses) 17th Nov 20'},
        {0: 304, 1: '(Responses) 17th Nov 20'},
        {0: 1177, 1: '(Responses) 17th Nov 20'},
        {0: 899, 1: '(Responses) 17th Nov 20'}]

df = pd.DataFrame(data)

0                1                                          
18    (Responses) 17th Nov 20
304   (Responses) 17th Nov 20
1177  (Responses) 17th Nov 20
899   (Responses) 17th Nov 20

有没有有效的方法提取出17th Nov 2020并将其转换为新的column[2]as17-11-2020as日期

对于其他日期,它也可以是1st2nd3rd

预期产出:

0                1                 2                         
18    (Responses) 17th Nov 20   17-11-2020
304   (Responses) 17th Nov 20   17-11-2020
1177  (Responses) 17th Nov 20   17-11-2020
899   (Responses) 17th Nov 20   17-11-2020

Tags: 数据方法dataframedfdatacolumnresponsesnov
2条回答

只需split以“(responses)”作为关键字的字符串,然后获取拆分后的第二个元素:

  df['new_column'] = df['1'].str.split("(responses)").str[1]

尝试使用str.splitpd.to_datetime

df[2] = pd.to_datetime(df[1].str.replace('\(Responses\) ', ''))
print(df)

输出:

      0                        1          2
0    18  (Responses) 17th Nov 20 2020-11-17
1   304  (Responses) 17th Nov 20 2020-11-17
2  1177  (Responses) 17th Nov 20 2020-11-17
3   899  (Responses) 17th Nov 20 2020-11-17

相关问题 更多 >

    热门问题