[英]Pandas string slice returns NaN
我有一個如下的數據框:
Ref Net
C1 1- A:VCC
C2 2- A:VDD
C3 3- A:GND
我想從Net
列中刪除1- A:
、 2- A:
和3- A:
:
Ref Net
C1 VCC
C2 VDD
C3 GND
我試過這個命令: df.Net = df.Net.str.slice(df.Net.str.find('A:'))
但隨后Net
列變成了NaN
:
print(df.Net)
---------
0 NaN
1 NaN
2 NaN
slice 命令返回正確的值:
print(df.Net.str.find('A:'))
------
0 3
1 3
2 3
我在這里錯過了什么?
我假設,net 系列的類型為 str。 也許您應該嘗試以下操作:
df['result'] = df['Net'].apply(str).apply(lambda x: x.split(':')[-1])
如果 type 是 str, apply(str)
是可選的。
你可以這樣做:
In [539]: df.Net = df.Net.str.split(':').str[-1]
In [540]: df
Out[540]:
Ref Net
0 C1 VCC
1 C2 VDD
2 C3 GND
您可以為此使用正則表達式
import pandas as pd
df = pd.DataFrame({'Ref':['C1', 'C2'], 'Net':['1- A:VCC', '2- A:VDD']})
df['Net'] = df['Net'].str.replace(r'\d- \w:', '')
輸出:
Ref Net
0 C1 VCC
1 C2 VDD
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.