gpt4 book ai didi

pandas - 如何获取列值以 2 或 3 位数字和英寸符号 (") 开头的行

转载 作者:行者123 更新时间:2023-12-04 08:50:20 24 4
gpt4 key购买 nike

我有一个 df 行,如:

index | text
0 | '28,3" LEDTV K98765 AB12345 EU'
1 | '65" LEDTV K98765 AB12345 EU'
2 | '55,3" LEDTV K98765 AB12345 EU'
3 | 'MON 22,8" LED U754 PL333 DE'
4 | 'DAB Radio Work 34RT55 Blue'
每台电视都以英寸(“28,3”/“65”/“55,3”)的尺寸开头,并在文本中的某处带有“TV”一词。
我需要知道哪些产品是电视,如果是,屏幕尺寸是否大于 55 英寸。
在此示例中,第 1 行和第 2 行都符合此标准。
最终结果应该是:
index | text                            | tvandbiggerthan55
0 | '28,3" LEDTV K98765 AB12345 EU' | 0
1 | '65" LEDTV K98765 AB12345 EU' | 1
2 | '55,3" LEDTV K98765 AB12345 EU' | 1
3 | 'MON 22,8" LED U754 PL333 DE' | 0
4 | 'DAB Radio Work 34RT55 Blue' | 0
如何一次性检查整个列?

最佳答案

使用 Series.str.extract 获取之前的数字 " , 替换 ,并转换为浮点数,因此可以通过 Series.gt 进行比较为了更大,第二个面具使用 Series.str.contains 1,0 map 使用 Series.view :

m1 = (df['text'].str.extract('(\d+,\d+|\d+)"', expand=False)
.str.replace(',','.')
.astype(float)
.gt(55))
m2 = df['text'].str.contains('TV')
df['tvandbiggerthan55'] = (m1 & m2).view('i1')
print (df)
text tvandbiggerthan55
0 '28,3" LEDTV K98765 AB12345 EU' 0
1 '65" LEDTV K98765 AB12345 EU' 1
2 '55,3" LEDTV K98765 AB12345 EU' 1
3 'MON 22,8" LED U754 PL333 DE' 0
4 'DAB Radio Work 34RT55 Blue' 0

关于pandas - 如何获取列值以 2 或 3 位数字和英寸符号 (") 开头的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64135460/

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