我已成功从以下列值示例中提取日期模式:
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
之外的所有行都保存相同的确切日期,这是否有原因?现在我将删除日期列,因为它是索引,但我需要索引才能正确显示。
每一行都应该是唯一的......
最佳答案
代码的第二行:
enron_df['date'] = enron_df['date'].str[5:-21][0]
是在所有行中重复相同日期的原因。 0
索引选择第一行,然后将列中的每个日期设置为等于该值。
我相信删除 [0]
可以解决您的问题。
关于python - 正则表达式模式仅用一项替换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51847830/