如何从数据帧中的列输出一系列数字?

2024-04-29 03:51:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个循环,在一个数据帧中提取一个数字或范围,并在找到单词后停止分析字符串。你知道吗

例如:

   df['size']=['sz 10-13 of jordan 12', 'size 10 adidas', 
               'size 11 nike air forece 1', 'sz 6-7 jordan 6sz', ‘brand new Sz 11 jordan 5’]

我需要一个类似的函数:

def assignSize(row):

    sizeList =[]
    for word in sizeList:
        if word == 'sz' or word == 'size':
            #i do not know what to place here

但我希望我的结果是:

df['size'] =['10-13','10','11','6-7']

基本上,我希望脚本在找到第一个数字或第一个数字范围后停止读取字符串。所以在初始大小或sz之后还有另一个'sz',它不应该读取它。你知道吗


Tags: of数据字符串dfsize数字air单词
1条回答
网友
1楼 · 发布于 2024-04-29 03:51:16

为什么不只是这个?地址:

df['size'] = df['size'].apply(lambda x: x.split()[1])
print(df['size'])

输出:

0    10-13
1       10
2       11
3      6-7
Name: size, dtype: object

编辑:

试试这个:

import re
df['size']=['sz 10-13 of jordan 12', 'size 10 adidas', 
               'brand new Sz 13 jordan 5', 'sz 6-7 jordan 6sz']
df['size'] = df['size'].apply(lambda x: '-'.join(re.findall(r'\d+', ' '.join(x.split()[:-1]))))
print(df['size'])

输出:

0    10-13
1       10
2       13
3      6-7
Name: size, dtype: object

相关问题 更多 >