featuretools.EntitySet.entity_from_dataframe

EntitySet.entity_from_dataframe(entity_id, dataframe, index=None, variable_types=None, make_index=False, time_index=None, secondary_time_index=None, already_sorted=False)[source]

Load the data for a specified entity from a Pandas DataFrame.

Parameters
  • entity_id (str) – Unique id to associate with this entity.

  • dataframe (pandas.DataFrame) – Dataframe containing the data.

  • index (str, optional) – Name of the variable used to index the entity. If None, take the first column.

  • variable_types (dict[str -> Variable/str], optional) – Keys are of variable ids and values are variable types or type_strings. Used to to initialize an entity’s store.

  • make_index (bool, optional) – If True, assume index does not exist as a column in dataframe, and create a new column of that name using integers. Otherwise, assume index exists.

  • time_index (str, optional) – Name of the variable containing time data. Type must be in variables.DateTime or be able to be cast to datetime (e.g. str, float, or numeric.)

  • secondary_time_index (dict[str -> Variable]) – Name of variable containing time data to use a second time index for the entity.

  • already_sorted (bool, optional) – If True, assumes that input dataframe is already sorted by time. Defaults to False.

Notes

Will infer variable types from Pandas dtype

Example

In [1]: import featuretools as ft

In [2]: import pandas as pd

In [3]: transactions_df = pd.DataFrame({"id": [1, 2, 3, 4, 5, 6],
   ...:                                 "session_id": [1, 2, 1, 3, 4, 5],
   ...:                                 "amount": [100.40, 20.63, 33.32, 13.12, 67.22, 1.00],
   ...:                                 "transaction_time": pd.date_range(start="10:00", periods=6, freq="10s"),
   ...:                                 "fraud": [True, False, True, False, True, True]})
   ...: 

In [4]: es = ft.EntitySet("example")

In [5]: es.entity_from_dataframe(entity_id="transactions",
   ...:                          index="id",
   ...:                          time_index="transaction_time",
   ...:                          dataframe=transactions_df)
   ...: 
Out[5]: 
Entityset: example
  Entities:
    transactions [Rows: 6, Columns: 5]
  Relationships:
    No relationships

In [6]: es["transactions"]
Out[6]: 
Entity: transactions
  Variables:
    id (dtype: index)
    session_id (dtype: numeric)
    amount (dtype: numeric)
    transaction_time (dtype: datetime_time_index)
    fraud (dtype: boolean)
  Shape:
    (Rows: 6, Columns: 5)

In [7]: es["transactions"].df
Out[7]: 
   id  session_id  amount    transaction_time  fraud
1   1           1  100.40 2020-06-06 10:00:00   True
2   2           2   20.63 2020-06-06 10:00:10  False
3   3           1   33.32 2020-06-06 10:00:20   True
4   4           3   13.12 2020-06-06 10:00:30  False
5   5           4   67.22 2020-06-06 10:00:40   True
6   6           5    1.00 2020-06-06 10:00:50   True