【发布时间】:2020-04-24 13:03:46
【问题描述】:
如果应用了某些条件,我需要提取行。
-
col1列应包含列表list_words中的所有单词。 - 最后一个字应该是
Story - 下一行的最后一个单词应该是 b
ac:
这是我当前的代码:
import pandas as pd
df = pd.DataFrame({'col1': ['Draft SW Quality Assurance Story', 'alex ac', 'anny ac', 'antoine ac','aze epic', 'bella ac', 'Complete SW Quality Assurance Plan Story', 'celine ac','wqas epic', 'karmen ac', 'kameilia ac', 'Update SW Quality Assurance Plan Story', 'joseph ac','Update SW Quality Assurance Plan ac', 'joseph ac'],
'col2': ['aa', 'bb', 'cc', 'dd','ee', 'ff', 'gg', 'hh', 'ii', 'jj', 'kk', 'll', 'mm', 'nn', 'oo']})
print(df)
list_words="SW Quality Plan Story"
set_words = set(list_words.split())
#check if list_words is in the cell
df['TrueFalse']=pd.concat([df.col1.str.contains(word,regex=False) for word in list_words.split()],axis=1).sum(1) > 1
print('\n',df)
#extract last word
df["Suffix"] = df["col1"].str.split().str[-1]
print('\n',df)
df['ok']=''
for i in range (len(df)-1):
if ((df["Suffix"].iloc[i]=='Story') & (df["TrueFalse"].iloc[i]=='True') & (df["Suffix"].iloc[i+1]=='ac')):
df['ok'].iloc[i+1]=df["Suffix"].iloc[i+1]
print('\n',df)
输出:
col1 col2 TrueFalse Suffix ok
0 Draft SW Quality Assurance Story aa True Story
1 alex ac bb False ac
2 anny ac cc False ac
3 antoine ac dd False ac
4 aze epic ee False epic
5 bella ac ff False ac
6 Complete SW Quality Assurance Plan Story gg True Story
7 celine ac hh False ac
8 wqas epic ii False epic
9 karmen ac jj False ac
10 kameilia ac kk False ac
11 Update SW Quality Assurance Plan Story ll True Story
12 joseph ac mm False ac
13 Update SW Quality Assurance Plan ac nn True ac
14 joseph ac oo False ac
第 13 行应设置为False
想要的输出:
col1 col2 TrueFalse Suffix
1 Complete SW Quality Assurance Plan Story gg True Story
2 celine ac hh True ac
3 Update SW Quality Assurance Plan Story ll True Story
4 joseph ac mm True ac
【问题讨论】:
标签: python-3.x pandas rows