我想以“滚动”方式获取数据帧子集。我尝试了几件事但没有成功,这是我想做的一个例子。让我们考虑数据框。
df
var1 var2
0 43 74
1 44 74
2 45 66
3 46 268
4 47 66
Run Code Online (Sandbox Code Playgroud)
我想使用以下函数创建一个新列,该列执行条件总和:
def func(x):
tmp = (x["var1"] * (x["var2"] == 74)).sum()
return tmp
Run Code Online (Sandbox Code Playgroud)
并像这样称呼它
df["newvar"] = df.rolling(2, min_periods=1).apply(func)
Run Code Online (Sandbox Code Playgroud)
这意味着该函数将基于数据框应用,而不是针对每一行或每一列
它会回来
var1 var2 newvar
0 43 74 43 # 43
1 44 74 87 # 43 * 1 + 44 * 1
2 45 66 44 # 44 * 1 + 45 * 0
3 46 268 0 # 45 * 0 + …Run Code Online (Sandbox Code Playgroud) 让
a = np.array([[1, 2], [3, 4]])
a
array([[1, 2],
[3, 4]])
Run Code Online (Sandbox Code Playgroud)
然后使用 resize
b = np.resize(a, (3, 3))
b
array([[1, 2, 3],
[4, 1, 2],
[3, 4, 1]])
Run Code Online (Sandbox Code Playgroud)
b现在a以不稳定的顺序拥有来自if 的所有信息。有没有办法利用它来创建左上角看起来像 a 但现在有一个新列和一个新行的 np.nan ?
c = np.empty(b.shape)
c.fill(np.nan)
c[:a.shape[0], :a.shape[1]] = a
c
array([[ 1., 2., nan],
[ 3., 4., nan],
[ nan, nan, nan]])
Run Code Online (Sandbox Code Playgroud)
显然,上面的代码完成了同样的事情。我不禁认为resize可以以某种方式使用它来更有效地完成此任务。
一旦使用方法训练分类器,是否有办法检索用于分类器训练的特征名称列表fit?我希望在申请看不见的数据之前获得此信息。用于训练的数据是熊猫DataFrame,在我的情况下,分类器是RandomForestClassifier。
我想将一个句子转换为一个单热矢量数组.这些向量将是字母表的一个热门表示.它看起来如下:
"hello" # h=7, e=4 l=11 o=14
Run Code Online (Sandbox Code Playgroud)
会成为
[[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …Run Code Online (Sandbox Code Playgroud)