我需要解析数据框中的列值,并将第一个解析的部分保存在新列中,如果它有像“-”这样的解析分隔符(如果不将其留空)
raw_data = {'name': ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel'],
'code': ['01-02-11-55-00115','11-02-11-55-00445','test', '31-0t-11-55-00115'],
'favorite_color': ['blue', 'blue', 'yellow', 'green'],
'grade': [88, 92, 95, 70]}
df = pd.DataFrame(raw_data)
df.head()
添加一个具有第一个解析部分的新列,预期的列值为: 01 11 无效的 31
df['parsed'] = df['code'].apply(lambda x: x.split('-')[0] if '-' in x else 'null')
将输出:
name code favorite_color grade parsed
0 Willard Morris 01-02-11-55-00115 blue 88 01
1 Al Jennings 11-02-11-55-00445 blue 92 11
2 Omar Mullins test yellow 95 null
3 Spencer McDaniel 31-0t-11-55-00115 green 70 31