我有这个简单的数据框:
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
始终获取last 部分而不是second 部分。
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
但是,请记住,如果您的字符串包含 2 个或更多撇号(但您的要求并没有具体说明在这些情况下该怎么做),这将会停止。
关于python - 如何删除 Pandas 列中特殊字符前面的部分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45919406/