Python基于单元格元素(即对象)选择行

2024-10-04 09:23:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

message                                            topIntent
message1                       {"intent" : "UseCasePaymentArrangement","score" : "0.9899194717407227"}
message2                       {"intent" : "UseCaseReportAPayment","score" : "1"}  

“topIntent”列的类型为dict

从上面的数据框中,我只想筛选出'topIntent'列的行,'intent'字段匹配特定值,比如说“UseCasePaymentArrangement”。你知道吗

我尝试过的:

my_df.loc[(my_df.topIntent.intent == 'UseCasePaymentArrangement')]  

上述明显不起作用,我得到了'intent'关键错误

按topIntent列“intent”字段(按“UseCasePaymentArrangement”)筛选后的预期输出:

message1                       {"intent" : "UseCasePaymentArrangement","score" : "0.9899194717407227"}

我怎样才能做到这一点?你知道吗


Tags: 数据类型messagedfmylocdict关键
2条回答

下面是使用列表理解的另一种方法:

selected_intent = 'UseCasePaymentArrangement'

# We scan the df to get the matching indexes
indexes = [ind for x, ind in zip(df['topIntent'], df.index) 
        if 'intent' in list(x.keys()) and x['intent'] == selected_intent]

df.iloc[indexes]

输出:

    message                                          topIntent
0  message1  {'intent': 'UseCasePaymentArrangement', 'score...

使用^{}

df[df['topIntent'].str.get('intent') == 'UseCasePaymentArrangement']

输出:

    message                                          topIntent
0  message1  {'intent': 'UseCasePaymentArrangement', 'score...

相关问题 更多 >