簡體   English   中英

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

[英]Python Pandas populate column from partial string match

我有一個如下所示的數據Block ,我需要根據“ Program Number ”列中表示“ _block_1”或“ _block_2”的部分字符串匹配,在其中創建一個新列“ Block ,其值為12 我一直在嘗試如果語句和.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

您可以使用numpy where方法:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM