我的DF看起来像下面:
id date
1 21 July 2023 (abcd)
2 22 July 2023 00:00:01
3 23 July 2023 -abcda
字符串
我需要在一年(2023年)后删除所有内容,但我想保留它。因此结果应该是:
id date
1 21 July 2023
2 22 July 2023
3 23 July 2023
型
我用了这个,但是我不能保存关于年份的信息。
df['date'].str.rsplit('2023', 1).str.get(0)
型
我不能把年份'2023'加到这个操作后剩下的字符串中,因为年份可以改变。但是我可以处理这个问题。我只需要得到结果。
托马什
2条答案
按热度按时间bvjveswy1#
您可以使用以下正则表达式和
str.replace
来删除年份的4位数字之后的所有内容:字符串
regex demo的
或者使用
str.extract
匹配数字、字母和4位数字:型
regex demo的
\d{4}
替换为2023
。*输出量:
型
你原来的方法的一个变体是使用正则表达式的lookbehind进行分割,但它的效率较低,因为你需要2个
str
操作:型
avkwfej42#
如果您想从日期列中删除2023年之后的文本,则可以通过以下方式简单地实现此目的:
字符串
这段代码专门针对“date”列,并删除每个单元格中“2023”之后的文本,只保留“2023”之前的内容,并将“2023”追加到后面。