数据帧中有一列包含多个单词,中间用点分隔但我永远无法知道单元格内的单词数所以我想要得到最后一个单词后面的点
列X: www.xyz.hgk.lmo.de.eu.price
www.amazon.us.stock
www.hhhh.com.price
www.ebay.eu.stock
www.mmm.price
期望列值:
price
stock
price
stock
price
我的试验:
x2['Desired Column Values'] = x2['Column X'].str.split('.').str[2]
但这是不正确的,因为我不知道'的数量。
你可以做一个rsplit
,然后提取最后一个元素:
df['Column X'].str.rsplit('.', 1).str[-1]
同样地,你可以应用python函数:
df['Column X'].apply(lambda x: x.rsplit('.',1)[-1])
或者,您可以extract
一个正则表达式模式:
df['Column X'].str.extract('([^.]+)$', expand=False)
输出:
0 price
1 stock
2 price
3 stock
4 price
Name: Column X, dtype: object
x = 'www.xyz.hgk.lmo.de.eu.price'
x_list = x.split('.')
print(x_list[-1])
# x.split -> takes a parameter called sep, it returns a list of words that are separated by '.', then to access the last element of the list we use [-1]
更改并应用此方法到您的需求