我之前问了一个类似的问题,得到了很大的帮助:R:按ID按日期汇总历史记录
不同之处在于,对于以前的帖子,我有兴趣汇总所有历史信息,但现在我希望仅在90天前指定.
以下是我的数据外观的示例:
strDates <- c("09/09/16", "5/7/16", "5/6/16", "2/13/16", "2/11/16","1/7/16",
"11/8/16","6/8/16", "5/8/16","2/13/16","1/3/16", "1/1/16")
Date<-as.Date(strDates, "%m/%d/%y")
ID <- c("A", "A", "A", "A","A", "A", "B","B","B","B","B", "B")
Event <- c(1,0,1,0,1,1, 0,1,1,1,0, 1)
sample_df <- data.frame(Date,ID,Event)
Run Code Online (Sandbox Code Playgroud)
以及输出:
背景资料
我想在每次遭遇时保留所有附加信息,但是然后将ID的以下历史信息汇总回90天.
例
作为一个例子,让我们看看第2行.
第2行是ID A,所以我会引用第3-6行(发生在第2行遇到之前).在这组行中,我们看到行3,4,5并且都发生在过去90天内,第6行发生在感兴趣的时间之外.
第2行:3次遭遇的最近90天以前遭遇的次数
从第2行开始的最近90天的事件数:2事件(2016年5月6日和2月11日)
期望的输出
理想情况下,我会得到以下输出:
我发现自己需要向现有的 numpy 数组添加功能,这导致了以下代码的最后一部分实际上在做什么的问题:
np.ones(shape=feature_set.shape)[...,None]
Run Code Online (Sandbox Code Playgroud)
设置
例如,假设我希望通过使用 numpy 和求解来求解线性回归参数估计:
假设我有一个特征集形状 (50,1),一个形状为 (50,) 的目标变量,并且我希望使用我的目标变量的形状为截距值添加一列。
它看起来像这样:
# Create random target & feature set
y_train = np.random.randint(0,100, size = (50,))
feature_set = np.random.randint(0,100,size=(50,1))
# Build a set of 1s after shape of target variable
int_train = np.ones(shape=y_train.shape)[...,None]
# Able to then add int_train to feature set
X = np.concatenate((int_train, feature_set),1)
Run Code Online (Sandbox Code Playgroud)
我认为我知道的
当我包含 [...,None] 时,我看到输出的差异与我不使用它时的差异。这里是:
第二个版本在需要相同维数的输入数组周围返回错误,最终我偶然发现了使用 [...,None] 的解决方案。
主要问题
虽然我看到的输出[...,无]给我我想要的,我苦苦寻找的任何信息,什么是真正应该做的。任何人都可以带我了解这段代码的实际含义,None参数在做什么,等等?
谢谢!
I am going to use a dataset and plot that came from a previous problem (Here):
dat <- read.table(text = " Division Year OperatingIncome
1 A 2012 11460
2 B 2012 7431
3 C 2012 -8121
4 D 2012 15719
5 E 2012 364
6 A 2011 12211
7 B 2011 6290
8 C 2011 -2657
9 D 2011 14657
10 E 2011 1257
11 A 2010 12895
12 B 2010 5381
13 C 2010 -2408
14 D …Run Code Online (Sandbox Code Playgroud) 我试图随着时间的推移查看不同唯一 ID 的特定功能,并将其存储在 Pandas 的数据框中。
这是一个包含要复制的代码的示例:
d = {'id': ['adam', 'john'],'t1': ['A', 'A'], 't2': ['A', 'B'], 't3': ['A', 'B'], 't4': ['B', 'A']}
df = pd.DataFrame(data=d)
df
id t1 t2 t3 t4
0 adam A A A B
1 john A B B A
Run Code Online (Sandbox Code Playgroud)
我想计算特定 id 的 t* 值更改的次数。例子:
John 值从 A 开始移动到 B(一次变化),然后停留在 B(没有变化),然后在 t4 中移动到 A(第二次变化),所以总共有两次变化。
预期输出如下:
id t1 t2 t3 t4 toatal_change
0 adam A A A B 1
1 john A B B A 2
Run Code Online (Sandbox Code Playgroud)