我有一个如下所示的数据框,我需要根据列{中的部分字符串匹配项,创建一个新列Block
或值1
或2
{1}}表示_block_1或_block_2。我一直在尝试if语句和Program Number
,但无法使其正常工作。你会怎么做?
.str.contains
答案 0 :(得分:1)
您可以使用where
中的方法numpy
:
import numpy as np
df['Block'] = np.where(
df['Machine'].str.contains('_block_1'),1,
np.where(df['Machine'].str.contains('_block_2'),2,0)
)
否则,假设所有字符串的长度都相同:
df['Block'] = df['Machine'].str[15:].astype(int)