小编use*_*141的帖子

Pandas DataFrame使用先前的行值来处理复杂的"if"条件以确定当前值

我想知道是否有更快的方法来执行以下循环?也许使用apply或rolling apply函数来实现这一点基本上,我需要访问前一行的值来确定当前的单元格值.

df.ix[0] = (np.abs(df.ix[0]) >= So) * np.sign(df.ix[0])
for i in range(1, len(df)):
    for col in list(df.columns.values):
        if ((df[col].ix[i] > 1.25) & (df[col].ix[i-1] == 0)) | :
            df[col].ix[i] = 1
        elif ((df[col].ix[i] < -1.25) & (df[col].ix[i-1] == 0)):
            df[col].ix[i] = -1
        elif ((df[col].ix[i] <= -0.75) & (df[col].ix[i-1] < 0)) | ((df[col].ix[i] >= 0.5) & (df[col].ix[i-1] > 0)):
            df[col].ix[i] = df[col].ix[i-1]
        else:
            df[col].ix[i] = 0
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在函数中,我正在更新数据帧,我需要访问最新的前一行,因此使用shift将无法正常工作.

例如:输入:

A      B     C
1.3  -1.5   0.7
1.1  -1.4   0.6
1.0  -1.3   0.5
0.4 …
Run Code Online (Sandbox Code Playgroud)

python apply dataframe pandas

10
推荐指数
2
解决办法
2万
查看次数

使用具有预定平均值和标准(位置和比例)的 scipy 拟合 t 分布?

如何使用scipy.stats.t.fit()预定均值和标准差拟合 t 分布?

问题是,我有一个标准化的数据集,有mean=0std=1,我只想得到dft 分布。但是当我这样做时scipy.stats.t.fit(data),它输出df, loc, scale, 并且 loc&sclae 不一定等于 0&1。

我该如何解决这个问题?谢谢!

python scipy

5
推荐指数
1
解决办法
4348
查看次数

我可以在c ++ 11中的std :: deque上使用std :: max_element()吗?

我能编码std::max_element(std::begin(my_deque), std::end(my_deque))吗?

我问,因为我知道deque不能保证连续存储,所以我想知道当使用涉及迭代器的函数时它是否会正常运行std::max_element

非常感谢你!

c++ std deque c++11

5
推荐指数
2
解决办法
585
查看次数

标签 统计

python ×2

apply ×1

c++ ×1

c++11 ×1

dataframe ×1

deque ×1

pandas ×1

scipy ×1

std ×1