gpt4 book ai didi

python - 如何在 pandas 中检查元素是否在数组列中

转载 作者:行者123 更新时间:2023-12-02 03:01:44 36 4
gpt4 key购买 nike

我正面临这样的情况假设我有这个数据框

data = [{'column_1': 1, 'column_2': ['lala', 'lili', 'lele']},{'column_1': 5, 'column_2':['lala', 'lili', 'lolo']}]
df = pd.DataFrame(data)
df
column_1 column_2
0 1 [lala, lili, lele]
1 5 [lala, lili, lolo]

我有 3 个字符串

string_1 = 'lele'

string_2 = 'lulu'

string_3 = 'lolo'

如何检查 string_1 是否在 column_2 的数组中并返回该行?

最佳答案

使用boolean indexing使用 in 检查列表中的成员(member)资格:

string_1 = 'lele'

df1 = df[df['column_2'].apply(lambda x: string_1 in x)]
#alternative
#df1 = df[[string_1 in x for x in df['column_2']]]
print (df1)
column_1 column_2
0 1 [lala, lili, lele]

另一种解决方案是创建辅助 DataFrame 并按 DataFrame.eq 测试每行至少一个匹配项。和 DataFrame.any :

df1 = df[pd.DataFrame(df['column_2'].tolist(), index=df.index).eq(string_1).any(axis=1)]
print (df1)
column_1 column_2
0 1 [lala, lili, lele]

关于python - 如何在 pandas 中检查元素是否在数组列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59823666/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com