簡體   English   中英

Pandas 字符串切片返回 NaN

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM