Python Pandas从部分字符串匹配中填充列

时间:2019-01-21 01:19:17

标签: python string pandas

我有一个如下所示的数据框,我需要根据列{中的部分字符串匹配项,创建一个新列Block或值12 {1}}表示_block_1或_block_2。我一直在尝试if语句和Program Number,但无法使其正常工作。你会怎么做?

.str.contains

1 个答案:

答案 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)