[英]Remove all after specific characters in a dataframe Using Python
有一個特定字符的列表,我們需要刪除它后面的所有字符。
輸入數據:
text_dir
abc School, Uk
xyz College, USA
Pqr University, Berlin
Output 需要的值:
text_dir
abc School
xyz College
Pqr University
代碼片段:
spl_character=['School', 'college', 'university']
df['text_dir'] = df['text_dir'].str.split(spl_character).str[0]
Gives Error:
TypeError: unhashable type: 'list'
國際大學聯盟:
pat = f'(?i)^(.*)({"|".join(spl_character)}).*$'
df.text_dir.str.replace(pat, r'\1\2', regex=True)
0 abc School
1 xyz College
2 Pqr University
Name: text_dir, dtype: object
我修改了你的輸入並嘗試解決這個問題,我使用了正則表達式來解決這個問題。
import pandas as pd
import re
text_dir = ["abc School, Uk", "xyz College, USA", "Pqr University, Berlin"]
spl_character=['School,', 'College,', 'University,']
df = pd.DataFrame()
df['text_dir'] = text_dir
final_list = []
for item in df.text_dir:
for character in spl_character:
if j in i.split(' '):
val_re = re.compile("^(.*)"+character+"")
val_match = val_re.search(item)
final_list.append(val_match.group())
df['text_dir'] = final_list
Output:
text_dir
0 abc School,
1 xyz College,
2 Pqr University,
import pandas as pd
text_dir = ["abc School, Uk", "xyz College, USA", "Pqr University, Berlin"]
df = pd.DataFrame()
df['text_dir'] = text_dir
text_dir
0 abc School, Uk
1 xyz College, USA
2 Pqr University, Berlin
使用 lambda function
# Reformat values for column "text_dir" using a lambda function
df['text_dir'] = df['text_dir'].apply(lambda x: x.split(',')[0])
Output
text_dir
0 abc School
1 xyz College
2 Pqr University
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.