【发布时间】:2019-06-14 09:36:19
【问题描述】:
我有一个如下所示的数据框,我需要根据列 Program Number 中的部分字符串匹配创建一个新列 Block,其中包含值 1 或 2,其中显示为 _block_1或_block_2。我一直在尝试 if 语句和 .str.contains,但无法让它工作。你会怎么做呢?
148 0209-3SP_block_1 ['g76p010060q00250r.0005' 'JEBD0507160 REV A' CHNCIII
149 0209-3SP_block_2 ['g76x.3761z-.500p03067q03067f.05' 'JEBD0507160 REV A' CHNC III
150 0209-5SP_block_1 ['g76p020060q00250r.0005' 'JEBD0507160 REV A' CHNC III
151 0209-5SP_block_2 ['g76x.3767z-.48p03067q03067f.05' 'JEBD0507160 REV A' CHNC III
152 0210-3SP_block_1 ['g76p010060q00250r.0005' 'JEBD0507160 REV A' CHNC III
【问题讨论】:
-
刚刚尝试了另一种方法:
block1 = df['Machine'].str.contains('_block_1') df['Block'] = block1.replace((True,False), ('1','2')),但这会将所有2添加到列中 -
感谢您的链接,这实际上是我在最后一次尝试中一直使用的,测试匹配或包含模式的字符串部分