gpt4 book ai didi

Python:在多列中查找字符串并将其返回到新列中

转载 作者:行者123 更新时间:2023-12-04 21:14:00 25 4
gpt4 key购买 nike

嗨,我有一个包含多列的 excel 数据,我需要对特定单词进行罚款并将其返回到新列中
表格如下所示:

ID   col0  col1  col2  col3  col4  col5
1 jack a/h t/m w/n y/h 56
2 sam z/n b/w null null 93
3 john b/i y/d p/d null 33

我想在 col1、col2、col3 和 col4 列中查找“b”并创建一个名为“b”的新列,其中返回单元格值的值

结果看起来像这样
ID   col0  col1  col2  col3  col4  col5  b
1 jack a/h t/m w/n y/h 56 -
2 sam z/n b/w null null 93 b/w
3 john b/i y/d p/d null 33 b/i

我需要一种有效的方法来做到这一点我尝试在这样的地方使用
df1 = df[['col1', 'col2', 'col3', 'col4']]

df1['b']==[x for x in df1.values[0] if any(b for b in lst if b in str(x))]

我从这个答案中得到了这个 https://stackoverflow.com/a/50250103/3105140

但它对我不起作用,因为我有空值和条件不起作用的行

最佳答案

这是使用 stack 的方法和 str.contains df.where :

cols = ['col1', 'col2', 'col3', 'col4']
df['b'] = (df[cols].where(df[cols].stack().str.contains('b')
.unstack(fill_value=False)).ffill(1).iloc[:,-1])
print(df)

ID col0 col1 col2 col3 col4 col5 b
0 1 jack a/h t/m w/n y/h 56 NaN
1 2 sam z/n b/w NaN NaN 93 b/w
2 3 john b/i y/d p/d NaN 33 b/i

关于Python:在多列中查找字符串并将其返回到新列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59879678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com