正则表达式模式仅用一个条目替换列值

时间:2018-08-14 18:35:49

标签: python regex pandas

我已经成功从以下列值示例中提取了日期模式:

u"Message-ID: <18782981.1075855378110.JavaMail.evans@email> Date: Mon, 14 May 2001 16:39:00 -0700 (PDT) From: phillip.allen@email.com To: tim.belden@email.com"

这是我的代码:

enron_df['date'] = enron_df['message'].str.extract('Date:([^/]+)From:', expand=False).str.strip()
enron_df['date'] = enron_df['date'].str[5:-21][0]
enron_df['date'] = [x.encode('utf8') for x in enron_df['date']]
enron_df['date'] = enron_df['date'].str.replace(" ","-")

这是示例输出:

enron_df.head(3)

            message sender  date
date            
2001-05-14  abcdefg allen   14-May-2001
2001-05-14  abcdefg bob     14-May-2001
2001-05-14  abcdefg john    14-May-2001

是否有原因,head之后的所有行都保存相同的确切日期?现在将日期列作为索引删除,但是我需要该索引才能正确显示。

它们对于每一行都应该是唯一的...

1 个答案:

答案 0 :(得分:1)

代码的第二行:

enron_df['date'] = enron_df['date'].str[5:-21][0]

是在所有行中复制相同日期的原因。 0索引选择第一行,然后将列中的每个日期设置为等于该值。

我相信删除[0]可以解决您的问题。