給定字串:
57 歲零 67 天 1789 年 4 月 30 日
61 歲零 125 天 1797 年 3 月 4 日
57 年 325 天 1801 年 3 月 4 日
57 年 353 天 1809 年 3 月 4 日
58 年 310 天 1817 年 3 月 4 日
在正則運算式 101 中:
模式 = (?P<Years>[\d]{1,2}) years, (?P<Days>[\d]{1,3}) days(?P<Month>[\w]{3} [\d]{1,2}), (?P<Year>[\d]{4})
輸出: 正則運算式模式的輸出
在 Python(IDE:Jupyter Notebook)中: Python 輸出 這里只顯示資料框中的 nan 值,如何解決這個問題?
uj5u.com熱心網友回復:
僅供參考,您的代碼對我來說運行得很好,也許您的資料框中有一些空白問題:
import pandas as pd
import numpy as np
from io import StringIO
st = StringIO("""57 years, 67 daysApr 30, 1789
61 years, 125 daysMar 4, 1797
57 years, 325 daysMar 4, 1801
57 years, 353 daysMar 4, 1809
58 years, 310 daysMar 4, 1817""")
df = pd.read_csv(st, sep='\s\s\s ', header=None, engine='python')
Pattern = '(?P<Years>[\d]{1,2}) years, (?P<Days>[\d]{1,3}) days(?P<Month>[\w]{3} [\d]{1,2}), (?P<Year>[\d]{4})'
df[0].str.extract(Pattern)
輸出:
Years Days Month Year
0 57 67 Apr 30 1789
1 61 125 Mar 4 1797
2 57 325 Mar 4 1801
3 57 353 Mar 4 1809
4 58 310 Mar 4 1817
uj5u.com熱心網友回復:
利用:
#Preparing data
string = """57 years, 67 daysApr 30, 1789
61 years, 125 daysMar 4, 1797
57 years, 325 daysMar 4, 1801
57 years, 353 daysMar 4, 1809
58 years, 310 daysMar 4, 1817"""
df = pd.DataFrame(string.split('\n'))
#Solution
temp = df[0].str.extractall('(?P<Years>[\d]{1,2}) years, (?P<Days>[\d]{1,3}) days(?P<Month>[\w]{3} [\d]{1,2}), (?P<Year>[\d]{4})')
輸出:
Years Days Month Year
match
0 0 57 67 Apr 30 1789
1 0 61 125 Mar 4 1797
2 0 57 325 Mar 4 1801
3 0 57 353 Mar 4 1809
4 0 58 310 Mar 4 1817
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/483132.html
