[英]Mapping keywords with a dataframe columns using pandas in python
我有一個數據框,
DF,
Name Stage Description
Sri 1 Sri is one of the good singer in this two
2 Thanks for reading
Ram 1 Ram is one of the good cricket player
ganesh 1 good driver
和一份清單,
my_list=["one","driver"]
I tried, names=df.loc[df["Description"].str.contains("|".join(my_list),na=False), 'Name']
實現了除鍵值列之外的所有內容。
output_DF.
Name Stage Description
Sri 1 Sri is one of the good singer in this two
Ram 1 Ram is one of the good cricket player
My desired output is,
desired_DF,
Name Stage Description keyvalue
Sri 1 Sri is one of the good singer in this two one
2 Thanks for reading
Ram 1 Ram is one of the good cricket player one
ganesh 1 good driver driver
有人幫我生成鍵值列
我認為您可以從這里使用以前的解決方案,然后extract
:
pat = "|".join(my_list)
df['keyvalue'] = df['Description'].str.extract("(" + pat + ')', expand=False).fillna('')
print (df)
Name Stage Description keyvalue
0 Sri 1 Sri is one of the good singer in this two one
1 Sri 2 Thanks for reading
2 Ram 1 Ram is one of the good cricket player one
3 ganesh 1 good driver driver
全部一起:
print (df)
# Name Stage Description
#0 Sri 1 Sri is one of the good singer in this two
#1 2 Thanks for reading
#2 Ram 1 Ram is one of the good cricket player
#3 ganesh 1 good Driver one
my_list=["ONE","driver"]
df['Name'] = df['Name'].mask(df['Name'].str.strip() == '').ffill()
pat = "|".join(my_list).lower()
names=df.loc[df["Description"].str.lower().str.contains(pat,na=False), 'Name']
df = df[df['Name'].isin(names)]
df['keyvalue'] = (df['Description'].str.lower()
.str.extract("(" + pat + ')', expand=False)
.fillna(''))
print (df)
# Name Stage Description keyvalue
#0 Sri 1 Sri is one of the good singer in this two one
#1 Sri 2 Thanks for reading
#2 Ram 1 Ram is one of the good cricket player one
#3 ganesh 1 good Driver one driver
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.