开发者社区> 问答> 正文

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

有一个数据帧,我需要创建一个新列Block与任一值1或2基于列的部分字符串匹配在它Program Number那里说_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

展开
收起
一码平川MACHEL 2019-01-22 10:47:27 2633 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)

    2019-07-17 23:26:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data Pre-Processing in Python: 立即下载
即学即用的Pandas入门与时间序列分析 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载