如何从列中提取值到另外两个?
How to extract values from column to another two?
我第一次用Pandas。
有一个从字符串 0122
或 012022
或 01/22
:
中提取 mm, yy 的正则表达式规则
def extractMMYY(str):
pattern = r"^((?:0[1-9]|1[0-2])|[0-9])[.\/\-]*([0-9]{3}[0-9]|[0-9]{2})$"
match = re.search(pattern, str)
mm = None
yy = None
if match:
mm = match.group(1)
yy = match.group(2)
if mm and yy:
return mm, yy
return mm, yy
我已尝试将此函数应用于特定列并获取新数据框:
df_filtered = df[df['column_name'].apply(extractMMYY)];
因此,我需要创建另外两个列:MM、YY,其值来自 extractMMYY
。
怎么做?
你可以试试
df = pd.DataFrame({'column_name': {0: '0122', 1: '012022', 2: '01/22', 3: '9922', 4: '03/23'}})
df_filtered = pd.DataFrame(df['column_name'].apply(extractMMYY).tolist(), columns=['MM', 'YY'])
print(df_filtered)
MM YY
0 01 22
1 01 2022
2 01 22
3 None None
4 03 23
我第一次用Pandas。
有一个从字符串 0122
或 012022
或 01/22
:
def extractMMYY(str):
pattern = r"^((?:0[1-9]|1[0-2])|[0-9])[.\/\-]*([0-9]{3}[0-9]|[0-9]{2})$"
match = re.search(pattern, str)
mm = None
yy = None
if match:
mm = match.group(1)
yy = match.group(2)
if mm and yy:
return mm, yy
return mm, yy
我已尝试将此函数应用于特定列并获取新数据框:
df_filtered = df[df['column_name'].apply(extractMMYY)];
因此,我需要创建另外两个列:MM、YY,其值来自 extractMMYY
。
怎么做?
你可以试试
df = pd.DataFrame({'column_name': {0: '0122', 1: '012022', 2: '01/22', 3: '9922', 4: '03/23'}})
df_filtered = pd.DataFrame(df['column_name'].apply(extractMMYY).tolist(), columns=['MM', 'YY'])
print(df_filtered)
MM YY
0 01 22
1 01 2022
2 01 22
3 None None
4 03 23