我正在嘗試計算長度為 5 或更多的列中的字串數。這些字串位于以逗號分隔的列中。
df= pd.DataFrame(columns=['first'])
df['first'] = ['Jack Ryan, Tom O','Stack Over Flow, StackOverFlow','Jurassic Park, IT', 'GOT']
我到目前為止使用的代碼,但沒有創建一個字串計數超過 5 個字符的新列。
df['countStrings'] = df['first'].str.split(',').count(r'[a-zA-Z0-9]{5,}')
預期輸出:計算長度為 5 或更多的字串。
| 第一的 | 計數字串 |
|---|---|
| 杰克瑞恩,湯姆 O | 0 |
| 堆疊溢位,堆疊溢位 | 2 |
| 侏羅紀公園,IT | 1 |
| 得到 | 0 |
邊緣情況:長度超過 5 的字串,以逗號分隔并有多個空格
| 第一的 | 錯誤計數 | 正確計數 |
|---|---|---|
| 應付賬款轉售商品 | 4 | 1 |
| 企業金融、金融工程 | 4 | 2 |
| 待定 | 0 | 0 |
| 非轉售商品,SAP | 2 | 1 |
uj5u.com熱心網友回復:
您可以匹配 5 個字符,左右匹配逗號以外的可選字符。
[^,]*[A-Za-z0-9]{5}[^,]*
查看帶有匹配項的正則運算式演示。
例子
import pandas as pd
df = pd.DataFrame(columns=['first'])
df['first'] = [
'Accounts Payable Goods for Resale',
'Corporate Finance, Financial Engineering',
'TBD',
'Goods for Not Resale, SAP',
'Jack Ryan, Tom O',
'Stack Over Flow, StackOverFlow',
'Jurassic Park, IT',
'GOT'
]
df['countStrings'] = df['first'].str.count(r'[^,]*[A-Za-z0-9]{5}[^,]*')
print(df)
輸出
first countStrings
0 Accounts Payable Goods for Resale 1
1 Corporate Finance, Financial Engineering 2
2 TBD 0
3 Goods for Not Resale, SAP 1
4 Jack Ryan, Tom O 0
5 Stack Over Flow, StackOverFlow 2
6 Jurassic Park, IT 1
7 GOT 0
uj5u.com熱心網友回復:
Pandas str.len()方法用于確定 Pandas 系列中每個字串的長度。此方法僅適用于字串系列。由于這是一個字串方法,因此每次呼叫此方法之前都必須加上 .str 前綴。
喲可以試試這個:
import pandas as pd
df = pd.DataFrame(columns=['first'])
df['first'] = ['jack,utah,TOMHAWK
Somer,SORITNO','jill','bob,texas','matt,AR','john']
df['first'].replace(',',' ', regex=True, inplace=True)
df['first'].str.count(r'\w ').sum()
uj5u.com熱心網友回復:
這就是我嘗試在列中獲取len>=5的字串數的方法:
data=[i for k in df['first']
for i in k.split(',')
if len(i)>=5]
result=len(data)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/510282.html
