Как сравнить 2 кадра данных и заполнить логическое значениеPython

Программы на Python
Anonymous
Как сравнить 2 кадра данных и заполнить логическое значение

Сообщение Anonymous »

как сравнить 2 кадра данных и заполнить логическое значение
проверить, присутствует ли во втором кадре данных отдельный шаблон из dict или целая строка.
df1 = pl.DataFrame({
"A": ["a", "b", "a", "c","a","c","a","b","b"],
"B": [23,45,60,50,56,44,34,30,97],
"C": ["{'pattern1':['a','score1'],'pattern2':['df','text1']}",
"{'pattern3':['abc','score1']}",
"{'pattern1':['a','score2'],'pattern4':['df','text2']}",
"{'pattern5':['a','score2'],'pattern6':['gh','text1'],'pattern7':['gh','text1']}",
"{'pattern8':['a','score1']}",
"{'pattern9':['a','score1'],'pattern10':['df','text1']}",
"{'pattern11':['a','score1']}",
"{'pattern12':['a','score1'],'pattern13':['df','text1']}",
"{'pattern3':['a','score1'],'pattern5':['df','text1']}"]
})

shape: (9, 3)
┌─────┬─────┬─────────────────────────────────────────────────────────────────────────────────┐
│ A ┆ B ┆ C │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ str │
╞═════╪═════╪═════════════════════════════════════════════════════════════════════════════════╡
│ a ┆ 23 ┆ {'pattern1':['a','score1'],'pattern2':['df','text1']} │
│ b ┆ 45 ┆ {'pattern3':['abc','score1']} │
│ a ┆ 60 ┆ {'pattern1':['a','score2'],'pattern4':['df','text2']} │
│ c ┆ 50 ┆ {'pattern5':['a','score2'],'pattern6':['gh','text1'],'pattern7':['gh','text1']} │
│ a ┆ 56 ┆ {'pattern8':['a','score1']} │
│ c ┆ 44 ┆ {'pattern9':['a','score1'],'pattern10':['df','text1']} │
│ a ┆ 34 ┆ {'pattern11':['a','score1']} │
│ b ┆ 30 ┆ {'pattern12':['a','score1'],'pattern13':['df','text1']} │
│ b ┆ 97 ┆ {'pattern3':['a','score1'],'pattern5':['df','text1']} │
└─────┴─────┴─────────────────────────────────────────────────────────────────────────────────┘

df2 = pl.DataFrame({
"A": ["a", "a", "b", "b","a","c"],
"valid_patterns": ['pattern1',
"{'pattern1': ['a', 'score2'], 'pattern4': ['df', 'text2']}",
"{'pattern3':['abc','score1']}",
'pattern3',
"{'pattern11': ['a', 'score1']}",
'pattern9']
})

shape: (6, 2)
┌─────┬────────────────────────────────────────────────────────────┐
│ A ┆ valid_patterns │
│ --- ┆ --- │
│ str ┆ str │
╞═════╪════════════════════════════════════════════════════════════╡
│ a ┆ pattern1 │
│ a ┆ {'pattern1': ['a', 'score2'], 'pattern4': ['df', 'text2']} │
│ b ┆ {'pattern3':['abc','score1']} │
│ b ┆ pattern3 │
│ a ┆ {'pattern11': ['a', 'score1']} │
│ c ┆ pattern9 │
└─────┴────────────────────────────────────────────────────────────┘

Вывод:
На основе столбца A необходимо проверить значения столбца c, должен ли присутствовать полный dict или какой-либо один ключ в dict в столбце valid_patterns второго кадра данных для столбца A.
output = pl.DataFrame({
"A": ["a", "b", "a", "c","a","c","a","b","b"],
"B": [23,45,60,50,56,44,34,30,97],
"C": ["{'pattern1':['a','score1'],'pattern2':['df','text1']}",
"{'pattern3':['abc','score1']}",
"{'pattern1':['a','score2'],'pattern4':['df','text2']}",
"{'pattern5':['a','score2'],'pattern6':['gh','text1'],'pattern7':['gh','text1']}",
"{'pattern8':['a','score1']}",
"{'pattern9':['a','score1'],'pattern10':['df','text1']}",
"{'pattern11':['a','score1']}",
"{'pattern12':['a','score1'],'pattern13':['df','text1']}",
"{'pattern3':['a','score1'],'pattern5':['df','text1']}"],
"VALID": [True,True,True,False,False,True,True,False,False]
})


Подробнее здесь: https://stackoverflow.com/questions/784 ... lean-value

Вернуться в «Python»