Pandas 在数据框单元格中搜索列表列表

Pandas 在数据框单元格中搜索列表列表,pandas,dataframe,Pandas,Dataframe,我有一个数据框,它由两列错误和注释组成 “我的错误”列将包含每个单元格中的字符串列表。我需要帮助编写代码来搜索数据框,并找到我的数据框错误内容与用户输入val1匹配的行的注释 我尝试了给定的代码,但它给出的错误长度不匹配 df.loc[df['Error'].values == val1, 'Comments'] 其中df是我的数据帧,列为“Error”和“Comments” df 假设val1=['mydata1','mydata2'] 我的结果是,如果需要精确匹配,通过val1搜索df,找

我有一个数据框,它由两列错误和注释组成 “我的错误”列将包含每个单元格中的字符串列表。我需要帮助编写代码来搜索数据框,并找到我的数据框错误内容与用户输入val1匹配的行的注释

我尝试了给定的代码,但它给出的错误长度不匹配

df.loc[df['Error'].values == val1, 'Comments']
其中df是我的数据帧,列为“Error”和“Comments”

df

假设
val1=['mydata1','mydata2']


我的结果是,如果需要精确匹配,通过val1搜索df,找到分辨率1作为输出

m = df['Error'].apply(lambda x: x == val1)
如果顺序不同,则转换为sets和comapre:

m = df['Error'].apply(lambda x: bool(set(x) == set(val1)))
如果需要交叉口:

m = df['Error'].apply(lambda x: bool(set(x).intersection(set(val1))))
或:

如果需要更改值:

df.loc[m, 'Comments'] = 'another value'

如果订单不是问题

df[df['Error'].apply(lambda x: ' '.join(x) == ' '.join(val1))]['Comments']
df[df.Error.apply(lambda x: True if len(set(x+val1)) == len(x) else False )]['Comments']
输出

0      'Resolution1'
Name:    Comments, dtype: object
0      'Resolution1'
Name: Comments, dtype: object
如果秩序是一个问题

df[df['Error'].apply(lambda x: ' '.join(x) == ' '.join(val1))]['Comments']
df[df.Error.apply(lambda x: True if len(set(x+val1)) == len(x) else False )]['Comments']
输出

0      'Resolution1'
Name:    Comments, dtype: object
0      'Resolution1'
Name: Comments, dtype: object

您能添加一些示例数据和预期输出吗?你能帮我在搜索后编辑这个评论单元格的内容吗?例如,如果我必须用其他值替换分辨率1…不要使用
df[df['Error'].apply(lambda x:''.join(x)=''.join(val1))]['Comments']
-按空格连接应该返回错误的输出,并且通过布尔索引过滤所有列,然后过滤列是错误的概念…但是类似的东西应该可以解决这两个问题
df.loc[df['Error'].apply(lambda x:''.''.'''.'''.''''.''''.''''.'注释'.]
将df.loc[m',Comments']='other value'在原地进行更改?@MayankRastogi-是的,完全正确。如果我将错误的数据从字符串列表更改为列表列表,此代码是否有效?@MayankRastogi-则更复杂。需要对每个嵌套列表进行循环并进行比较。您可以添加一些示例数据吗?不需要这样,您就可以找到将它们转换为字符串列表的方法