python - 正则表达式模式仅用一项替换列值

标签 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 之外的所有行都保存相同的确切日期,这是否有原因?现在我将删除日期列,因为它是索引,但我需要索引才能正确显示。

每一行都应该是唯一的......

最佳答案

代码的第二行:

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

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

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

关于python - 正则表达式模式仅用一项替换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51847830/

相关文章:

python - 使用递归计算列表中数字的出现次数

python - 如何获取数据框中的累计行数?

python - Pandas 数据框到 doc2vec.LabeledSentence

python - 如何将局部变量动态添加到动态创建的 Python 类方法中

python - 如何确定参数是否是数字列表? (Python)

python - 将时间转换为 float

javascript不区分大小写仅匹配字符串的一部分

java - 在字符串中查找并替换所有 NewLine 或 BreakLine 字符为\n - 独立于平台

javascript - 基于正则表达式的字符串修改

python - 按几乎相似的字符串分组