Skip to content

Commit

Permalink
Fix bug in PercentTrue primitive (#2627)
Browse files Browse the repository at this point in the history
* fix bug in PercentTrue primitive

* Revert "fix bug in PercentTrue primitive"

This reverts commit adbd640.

* fix bug in PercentTrue primitive

* update release notes

* update miniconda hash
  • Loading branch information
thehomebrewnerd authored Oct 25, 2023
1 parent f98704f commit a622f62
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/tests_with_latest_deps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ jobs:
$ProgressPreference = "silentlyContinue"
Invoke-WebRequest -Uri $Uri -Outfile "$env:USERPROFILE/$File"
$hashFromFile = Get-FileHash "$env:USERPROFILE/$File" -Algorithm SHA256
$hashFromUrl = "00e8370542836862d4c790aa8966f1d7344a8addd4b766004febcb23f40e2914"
$hashFromUrl = "29e008bcaa3970bdf4f21362e545533d55a0f04c7ae99b93f20cb2b42f9250b1"
if ($hashFromFile.Hash -ne "$hashFromUrl") {
Throw "$File hashes do not match"
}
Expand Down
1 change: 1 addition & 0 deletions docs/source/release_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Future Release
==============
* Enhancements
* Fixes
* Fix bug with default value in ``PercentTrue`` primitive (:pr:`2627`)
* Changes
* Refactor ``featuretools/tests/primitive_tests/utils.py`` to leverage list comprehensions for improved Pythonic quality (:pr:`2607`)
* Refactor ``can_stack_primitive_on_inputs`` (:pr:`2522`)
Expand Down
3 changes: 2 additions & 1 deletion featuretools/primitives/standard/aggregation/percent_true.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import pandas as pd
from woodwork.column_schema import ColumnSchema
from woodwork.logical_types import Boolean, BooleanNullable, Double

Expand Down Expand Up @@ -30,7 +31,7 @@ class PercentTrue(AggregationPrimitive):
return_type = ColumnSchema(logical_type=Double, semantic_tags={"numeric"})
stack_on = []
stack_on_exclude = []
default_value = 0
default_value = pd.NA
compatibility = [Library.PANDAS, Library.DASK]
description_template = "the percentage of true values in {}"

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import pandas as pd
from woodwork.logical_types import BooleanNullable

import featuretools as ft


def test_percent_true_default_value_with_dfs():
es = ft.EntitySet(id="customer_data")

customers_df = pd.DataFrame(data={"customer_id": [1, 2]})
transactions_df = pd.DataFrame(
data={"tx_id": [1], "customer_id": [1], "is_foo": [True]},
)

es.add_dataframe(
dataframe_name="customers_df",
dataframe=customers_df,
index="customer_id",
)
es.add_dataframe(
dataframe_name="transactions_df",
dataframe=transactions_df,
index="tx_id",
logical_types={"is_foo": BooleanNullable},
)

es = es.add_relationship(
"customers_df",
"customer_id",
"transactions_df",
"customer_id",
)

feature_matrix, _ = ft.dfs(
entityset=es,
target_dataframe_name="customers_df",
agg_primitives=["percent_true"],
)

assert pd.isna(feature_matrix["PERCENT_TRUE(transactions_df.is_foo)"][2])

0 comments on commit a622f62

Please sign in to comment.