我有一个问题,我试图解决,创建一个Nx1单元格,其中存储的数据总是N个2x2矩阵.
例:
N = 2
mycell = cell(N,1);
for i =1:N;
mycell{i} = randi([0, 10], 2);
end
newmatrix = zeros (N+1);
Run Code Online (Sandbox Code Playgroud)
所以说mycell {1}看起来像:
[3 5
2 1]
Run Code Online (Sandbox Code Playgroud)
和mycell {2}看起来像:
[6 9;
3 2]
Run Code Online (Sandbox Code Playgroud)
我新的零矩阵看起来像:
[0 0 0
0 0 0
0 0 0]
Run Code Online (Sandbox Code Playgroud)
我想让它看起来像这样(在这种对角线设置中加入第一个单元格的最后一个元素与下一个单元格的第一个元素):
[3 5 0
2 7 9
0 3 2]
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以做到这一点或任何可能有帮助的内置Matlab函数?
谢谢.
假设我有以下示例数据框:
df = pd.DataFrame({'A': [4, 0.2, 3, 0.5], 'B': ['red', 'white', 'blue', 'green']})
A B
0 4.0 red
1 0.2 white
2 3.0 blue
3 0.5 green
Run Code Online (Sandbox Code Playgroud)
我试图用 NaN 替换列中低于特定阈值的条目,如下所示:
A B
0 4.0 red
1 NaN white
2 3.0 blue
3 NaN green
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
cutoff = 2
df['A'] = df['A'].apply(lambda x: [y if y > cutoff else None for y in x])
Run Code Online (Sandbox Code Playgroud)
我收到的错误:
TypeError: 'float' object is not iterable
Run Code Online (Sandbox Code Playgroud)
我哪里出错了?None我认为这与类型有关
假设我有以下数据框:
df <- data.frame(id= c(1, 1, 2, 1, 2), error_1 = c(0, 0, 0, 1, 0), error_2 = c(1, 0, 0, 0, 0), error_3 = c(1, 0, 0, 1, 1))
> df
id error_1 error_2 error_3
1 1 0 1 1
2 1 0 0 0
3 2 0 0 0
4 1 1 0 1
5 2 0 0 1
Run Code Online (Sandbox Code Playgroud)
我想以某种方式“折叠”它,这样具有相同 ID 的记录将被连接到一行中,无论是否发生该特定类型的错误(而不是发生该错误的次数),该行都会显示“1”这样做了):
> df_result
id error_1 error_2 error_3
1 1 1 1
2 0 0 1
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?