簡體   English   中英

如何在熊貓列中的特殊字符之前刪除字符串的一部分?

[英]How to remove part of string ahead of special character in a column in Pandas?

我有這個簡單的數據框:

In [101]: df = pd.DataFrame({'a':[1,2,3],'b':['ciao','hotel',"l'hotel"]})

In [102]: df
Out[102]: 
   a           b
0  1        ciao
1  2       hotel
2  3     l'hotel

這里的目標是刪除'撇號前面的字符串部分,以便df:

   a           b
0  1        ciao
1  2       hotel
2  3       hotel

到目前為止,我嘗試用sep=("'")拆分字符串並僅獲取第二個元素,但是由於我有不同長度的字符串(因此列出了),所以它失敗了:

df['c'] = df['b'].apply(lambda x: x.split("'")[1])

您可以使用-1始終獲得最后一部分而不是第二部分。

df['c'] = df['b'].apply(lambda x: x.split("'")[-1])

print(df)

#    a        b      c
# 0  1     ciao   ciao
# 1  2    hotel  hotel
# 2  3  l'hotel  hotel 

但是,請記住,如果您的字符串帶有兩個或兩個以上的撇號(這將使您剎車)(但是您的要求始終未指定在這種情況下的處理方式)。

使用str.split並按-1選擇最后一個列表:

df['c'] = df['b'].str.split("'").str[-1]
print (df)
   a        b      c
0  1     ciao   ciao
1  2    hotel  hotel
2  3  l'hotel  hotel

或使用str.replace

df['c'] = df['b'].str.replace("(.*)'", '')
print (df)
   a        b      c
0  1     ciao   ciao
1  2    hotel  hotel
2  3  l'hotel  hotel

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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