我試圖從一列中提取一串零數字,并通過正則運算式將零計數轉換/計算到另一列,但它顯示錯誤。我該如何解決這個問題?謝謝!
我的代碼:
import pandas as pd
df = pd.DataFrame(columns=['count'],
data=[['ABC0000000000000000000000000000000000000000000000000000000000000000'],
['ABC0000000000000000000000000000000000101000000000000000000000000000'],
['ABC0000000000000000010010000000000000010000000010000000100000000000'],
['ABC0000110000000000000000000000000000000000000000000000000000000000'],
['N/A']])
def conv(x):
m = re.search(r'ABC(?P<COUNT>\S )', x)
cnt = 0
if m != None:
for d in m.group('COUNT'):
if d == '0':
cnt = 1
return cnt
df['count_conv'] = df['count'].apply(conv)
我的錯誤代碼:
TypeError: expected string or bytes-like object
我的預期輸出:

uj5u.com熱心網友回復:
嘗試這個,
df['count_conv'] = df['count'].str.count('0')
0 64
1 62
2 59
3 62
4 0
Name: count_conv, dtype: int64
uj5u.com熱心網友回復:
def conv(x):
return x.count('0')
uj5u.com熱心網友回復:
假設您只需要更新count列以 開頭的行的值ABC,您可以使用
df['count_conv'] = df[df['count'].str.contains(r'^ABC', regex=True)]['count'].str.count('0')
該.str.contains(r'^ABC', regex=True)部件檢測列中以count開頭的行ABC。
該df[df['count'].str.contains(r'^ABC', regex=True)]部分使用找到的匹配項獲取 df。稍后,count再次訪問列值并0在那里計算字符Series.str.count并將結果分配給df['count_conv']。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/341555.html
上一篇:正則運算式-空白無法獲得整數值
