Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python FeatureTools:时间索引参数中可以有多个列吗?_Python_Python 3.x_Datetimeindex_Featuretools - Fatal编程技术网

Python FeatureTools:时间索引参数中可以有多个列吗?

Python FeatureTools:时间索引参数中可以有多个列吗?,python,python-3.x,datetimeindex,featuretools,Python,Python 3.x,Datetimeindex,Featuretools,我在一个数据帧中有两个时间参数,即开始日期和结束日期,当从数据帧创建entityset时,这两个参数都是时间参数 在指定时间索引时,我们可以指定两个不同的列吗 我不想创建一个新的列来合并这两个列,因为我想得到两个列的agg_原语,如“time_since_first”、“time_since_last”、“avg_time_between”、“trend” 请告诉我。这可以通过将第二个时间列指定为datetimeindex来完成。下面是一个使用演示数据集的示例。 ​ 将功能工具作为ft导入 ​

我在一个数据帧中有两个时间参数,即开始日期和结束日期,当从数据帧创建entityset时,这两个参数都是时间参数

在指定时间索引时,我们可以指定两个不同的列吗

我不想创建一个新的列来合并这两个列,因为我想得到两个列的agg_原语,如“time_since_first”、“time_since_last”、“avg_time_between”、“trend”


请告诉我。

这可以通过将第二个时间列指定为
datetimeindex
来完成。下面是一个使用演示数据集的示例。 ​

将功能工具作为ft导入
​
df=ft.demo.load\u mock\u customer(返回单表=True)
df=df.filter(regex='amount | customer | time')
​ 我创建了第二个时间列。 ​

df['transaction\u time\u 2']=df['transaction\u time']
df.head()
​ 然后,我创建一个实体集。我使用
variable\u types
参数将第二个时间列设置为
datetimeindex
变量类型。 ​

es=ft.EntitySet()
es.entity_from_数据帧(
“交易”,
df,
时间\索引=”事务\时间',
index='id',
使_index=True,
变量类型={
“事务\u时间\u 2”:ft.variable\u types.DateTimeIndex,
}
)
规范化实体('transactions'、'customers',index='customer\u id')
​ 最后,计算特征矩阵。我们可以看到,基于时间的primitves应用于这两个时间列。 ​

fm,fd=ft.dfs(
目标实体=“客户”,
entityset=es,
agg_原语=[
“从第一次开始的时间”,
“自上次以来的时间”,
“平均时间间隔”,
“趋势”,
],
trans_原语=[],
)
​
打印(fm.iloc[0]。到_字符串()

如果有帮助,请告诉我。

谢谢,这有助于解决问题。但有一个疑问:为什么不创建一个新的关系,而不是规范化实体?这两者有什么区别?我很高兴听到这个消息。使用
规范化\u实体
自动创建关系。我建议你仔细看一下文件。
     transaction_time  amount  customer_id  transaction_time_2
0 2014-01-01 00:00:00  127.64            2 2014-01-01 00:00:00
1 2014-01-01 00:09:45   57.39            2 2014-01-01 00:09:45
2 2014-01-01 00:14:05   69.45            2 2014-01-01 00:14:05
3 2014-01-01 02:33:50  123.19            2 2014-01-01 02:33:50
4 2014-01-01 02:37:05   64.47            2 2014-01-01 02:37:05
TIME_SINCE_FIRST(transactions.transaction_time)      1.822703e+08
TIME_SINCE_FIRST(transactions.transaction_time_2)    1.822703e+08
TIME_SINCE_LAST(transactions.transaction_time)       1.822401e+08
TIME_SINCE_LAST(transactions.transaction_time_2)     1.822401e+08
AVG_TIME_BETWEEN(transactions.transaction_time)      3.285326e+02
AVG_TIME_BETWEEN(transactions.transaction_time_2)    3.285326e+02
TREND(transactions.amount, transaction_time)        -5.251887e+01
TREND(transactions.amount, transaction_time_2)      -5.251887e+01