Я пытаюсь провести сравнение между словарем и пандой DataFrame.
DataFrame выглядит следующим образом:
A B C
0 'a' 'x' 0
1 'b' 'y' 1
2 'c' 'z' 4
Словарь выглядит следующим образом:
{
'a-x': [1],
'b-y': [2],
'c-z': [3]
}
Цель состоит в том, чтобы использовать ключи словаря для определения совпадающих строк в кадре данных (ключ 'ax' соответствует индексу 0 столбца A и столбца B), а затем идентифицировать данные в кадре DataFrame в столбце C, который больше, чем связанныйзначение словаря.
Итак:
key 'a-x' matches index 0 of column A and column B, but value of 0 in C is less than 1 > exclude
key 'b-y' matches index 1 of column A and column B, but value of 1 in C is less than 2 > exclude
key 'c-z' matches index 2 of column A and column B, and value of 4 in C is greater than 3 > include
Отфильтрованный DataFrame будет включать только запись с индексом 2 и будет выглядеть следующим образом:
A B C
2 'c' 'z' 4
В случаеЕсть некоторые детали, которые имеют значение, это образец моих фактических данных
DataFrame:
Chrom Loc WT Var Change ConvChange AO DP VAF IntEx Gene Upstream Downstream Individual ID
0 chr1 115227854 T A T>A T>A 2 17224 0.0116117 TIII TIIIa NaN NaN 1 113.fastq/onlyProbedRegions.vcf
Словарь:
rates =
{
'chr1-115227854-T-A': [0.0032073647185113397]
}
Код:
return df[(df.Chrom+'-'+str(df.Loc)+'-'+df.WT+'-'+df.Var).map(pd.Series(rates).str[0])<df.VAF]