从带有熊猫的列中提取值时,无法仅检索遇到的第一个值

威尔·哈维

目前,我的代码如下所示:

import pandas as pd

Version = {'2','4','6','8','10','12', 'more'}

data = {'Version':['some unwanted text 2 3 4 5', ' some more text 6 7 8 9 10', '12 more text 11 ']}

df = pd.DataFrame(data)

def Version_finder(x):
    df_words = set(x.split(' '))
    extract_words =  Version.intersection(df_words)
    return ' '.join(extract_words)

df['New_Version'] = df.Version.apply(Version_finder)

输出为:

    Version                             New_Version
0   some unwanted text 2 3 4 5          4 2
1   some more text 6 7 8 9 10           6 10 more 8
2   12 more text 11                     12 more

但是,所需的输出是:

    Version                             New_Version
0   some unwanted text 2 3 4 5          2
1   some more text 6 7 8 9 10           more
2   12 more text 11                     12

**我只需要在“ New_Version”列中返回1个值即可。这必须是Set **中指定的version列中出现的第一个值

耶斯列尔

想法不是将拆分的值转换为set,因为in set中的定义顺序未定义,请按列表理解进行过滤,如果存在其他情况,则最后使用nextwithiter返回第一个匹配的值None

f = lambda x: next(iter([y for y in x.split() if y in Version]), None)
df['New_Version'] = df.Version.apply(f)
print (df)
                      Version New_Version
0  some unwanted text 2 3 4 5           2
1   some more text 6 7 8 9 10        more
2             12 more text 11          12

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从其他列中提取列中的所有第一个值

如何从其他列中提取列中的所有第一个值?

获取带有偏移索引的熊猫数据框中的列的第一个值

在python中提取对类型的第一个值

如何从data.frames列中的列表中提取第一个值?

使用逻辑索引时,大熊猫仅应用返回第一个值

如何根据列值从数据序列中提取第一个和最后一个值?

提取熊猫数据框列中第一个引号之间的值

带有多个值的Laravel流利插入仅插入第一个值

有条件的PHP foreach仅提取第一个值

使用Jolt从第一个数组元素中提取值

熊猫根据现有列的第一个唯一值创建新列

如何创建一个新列,其中包含Nan带有熊猫的列的名称?

提取第一个非随机列的值

从列表系列熊猫中提取第一个字符

熊猫分组依据,并找到所有列的第一个非空值

通过行号和行名匹配2个数据帧,并在匹配时从第一个df中提取值

如何使用SQL从其他列中只有一个特定值的列中提取值?

检索表时,无法在表中的第一个位置获得第一个元素?

按顺序从 JSON 中提取值 - 首先是第一个字符,然后是所有秒数等等

熊猫-仅保留列值的第一个实例(用空字符串替换其余部分)

熊猫数据框仅读取第一个值,NaN用于其他所有内容

从列中提取第一个单词并插入新列

Python:如何从数组中提取值的第一个实例并将其存储在列表中?

python - 从元组中提取第一个元素

使用Groovy从JSON响应中提取第一个节点值

Java 8从Map中的匹配值中提取第一个键

从[也许是]中提取第一个Just值

XMLType 从第一个节点中提取不同的值 ID