我正在寻找部分比赛成功的机会。下面是数据框的代码。
import pandas as pd
data = [['tom', 10,'aaaaa','aaa'], ['nick', 15,'vvvvv','vv'], ['juli', 14,'sssssss','kk']]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['Name', 'Age','random','partial'])
df
输出: 我期望下面显示的输出
Name Age random partial Matches
0 tom 10 aaaaa aaa True
1 nick 15 vvvvv vv True
2 juli 14 sssssss kk False
答案 0 :(得分:2)
您可以将df.apply
与lambda函数结合使用,该函数通过使用in
来检查部分字符串是否为其他字符串的一部分。
然后我们可以将其分配给数据框中的新列:
>>>import pandas as pd
>>>data = [['tom', 10,'aaaaa','aaa'], ['nick', 15,'vvvvv','vv'], ['juli',14,'sssssss','kk']]
>>>df = pd.DataFrame(data, columns = ['Name', 'Age','random','partial'])
>>>df['matching'] = df.apply(lambda x : x.partial in x.random, axis=1)
>>>print(df)
Name Age random partial matching
0 tom 10 aaaaa aaa True
1 nick 15 vvvvv vv True
2 juli 14 sssssss kk False
使用df.apply
时要注意的重要一件事是axis
参数,因为它使我们可以一次访问给定行的所有列。
答案 1 :(得分:2)
df['Matches'] = df.apply(lambda row: row['partial'] in row['random'], axis = 'columns')
df
给予
Name Age random partial Matches
0 tom 10 aaaaa aaa True
1 nick 15 vvvvv vv True
2 juli 14 sssssss kk False