Pandas 使用np.select从另一列获取数据
如何使用df['column'].str.extract()为np.select()中的选项生成条件列 如果我尝试使用代码,我会Pandas 使用np.select从另一列获取数据,pandas,numpy,Pandas,Numpy,如何使用df['column'].str.extract()为np.select()中的选项生成条件列 如果我尝试使用代码,我会 KeyError: 'new' 但是如果我添加列,比如 df['new'] = 'a' 然后全部使用,我得到了所有有选择但没有条件的列: column1 column2 new 0 --extract_text-- A extract_text 1 --extract_text-- A
KeyError: 'new'
但是如果我添加列,比如
df['new'] = 'a'
然后全部使用,我得到了所有有选择但没有条件的列:
column1 column2 new
0 --extract_text-- A extract_text
1 --extract_text-- A extract_text
2 --extract_text-- B extract_text
3 --extract_text-- B extract_text
但我想
column1 column2 new
0 --extract_text-- A extract_text
1 --extract_text-- A extract_text
2 --extract_text-- B a
3 --extract_text-- B a
我认为在
str.extract()
conditions=[df['column2'].str.contains('A',case=False,na=False)]
choises=[df['column1'].str.extract('--(.*--',expand=False)]
df['new']=np.select(条件、选项)
如果您不喜欢
df['new']
中的0
值,您可以对np执行相同的操作
df['new'] = np.where(df['column2'].str.contains('A',case=False,na=False), \
df['column1'].str.extract('--(.*)--', expand=False), \
'')
我认为在str.extract()
conditions=[df['column2'].str.contains('A',case=False,na=False)]
choises=[df['column1'].str.extract('--(.*--',expand=False)]
df['new']=np.select(条件、选项)
如果您不喜欢df['new']
中的0
值,您可以对np执行相同的操作
df['new'] = np.where(df['column2'].str.contains('A',case=False,na=False), \
df['column1'].str.extract('--(.*)--', expand=False), \
'')
df['new'] = np.where(df['column2'].str.contains('A',case=False,na=False), \
df['column1'].str.extract('--(.*)--', expand=False), \
'')
column1 column2 new
0 --extract_text-- A extract_text
1 --extract_text-- A extract_text
2 --extract_text-- B
3 --extract_text-- B