所以我有一个9位数的df列。没有重复项,每个ID以1-6之间的不同数字开头——这取决于每个ID以数字开头,我想创建一个单独的列,其中包含ID的第一个数字表示的“name”。(例如,以1开头的ID表示缅因州,以2开头的ID表示加利福尼亚州。。。等等)
如果只有两个条件的话,这是可行的:df['id_label'] = ['name_1' if name.startswith('1') else 'everything_else' for name in df['col_1']]
我不知道如何创建对所需内容的多行理解,所以我认为这是可行的,但它只创建循环最后一次迭代的id_label列(即id_label列只包含'name_5):for col in df['col_1']:
if col.startswith('1'):
df['id_label'] = 'name_1'
if col.startswith('2'):
df['id_label'] = 'name_2'
if col.startswith('3'):
df['id_label'] = 'name_3'
if col.startswith('4'):
df['id_label'] = 'name_4'
if col.startswith('5'):
df['id_label'] = 'name_5'
if col.startswith('6'):
df['id_label'] = 'name_5'
我的问题是如何从基于多个条件语句的旧列创建新列?