[英]How to: remove part of a Unicode string in Python following a special character
[英]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.