小编ent*_*ere的帖子

在MATLAB中,如果满足某些条件,如何跳过预定数量的for循环迭代?

在Matlab中,我在for循环期间执行计算,但是如果满足某些条件,我试图找到在for循环期间跳过迭代的方法.我写了一个简单的例子来说明我的问题.

在下面的代码中,for循环将经历迭代1和2并按预期输出到r.r(1)将为1,并且r(2)将为2.一旦for循环运行迭代3,则将值20放入r(3).在发生这种情况之后,我希望for循环跳过接下来的5次迭代并直接进入for循环的迭代8.

for i=1:1:10
    if i==3
        r(i)=20;
        i = i+5;
    else
        r(i) = i;
    end
end
Run Code Online (Sandbox Code Playgroud)

r的实际结果如下:

r =

 1     2    20     4     5     6     7     8     9    10
Run Code Online (Sandbox Code Playgroud)

但是,我希望结果看起来类似于以下内容.(请注意,我不打算用0填充所需的r(4):r(7),而是完全跳过循环迭代4到7.)

r =

 1     2    20     0     0     0     0     8     9    10
Run Code Online (Sandbox Code Playgroud)

如果有人有建议,那将非常感激.谢谢!

matlab for-loop continue

7
推荐指数
1
解决办法
7504
查看次数

将 Pandas DataFrame 附加到现有 Excel 文档

根据https://github.com/pandas-dev/pandas/pull/21251/files/09e5b456e1af5cde55f18f903ab90c761643b05a,我们应该能够将 DataFrame 附加到新的 XLSX 表。

根据文档,我尝试了以下操作:

>>> import pandas as pd
>>>                
... d1 = pd.DataFrame({"A":['Bob','Joe', 'Mark'], 
...                "B":['5', '10', '20']})
>>> d2 = pd.DataFrame({"A":['Jeffrey','Ann', 'Sue'], 
...                "B":['1', '2', '3']})
>>> 
>>> # Create XLSX document for ticker
... writer = pd.ExcelWriter('test.xlsx',engine='openpyxl')
>>> d1.to_excel(writer,sheet_name='d1')
>>> writer.save()
>>> 
>>> writer = pd.ExcelWriter('test.xlsx',engine='openpyxl', mode='a')
>>> d2.to_excel(writer,sheet_name='d2')
>>> writer.save()
>>> 
>>> pd.__version__
'0.23.4'     # Just updated this per a comment
>>> 
>>> 
Run Code Online (Sandbox Code Playgroud)

结果是一个名为“test.xlsx”的工作簿,带有一个选项卡“d2”。

如何防止工作簿/工作表表单被覆盖?

python excel pandas xlsxwriter

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

Python/DataFrame:当值大于零时计算出现次数/行的百分比

给定以下数据框:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.uniform(-1,1,size=(6, 2)), columns=list('AB'))


          A         B
0  0.179713  0.341367
1 -0.439868  0.999864
2 -0.253476 -0.816107
3 -0.829449 -0.562657
4  0.174300  0.055969
5  0.922375  0.987108
Run Code Online (Sandbox Code Playgroud)

如何计算特定列大于 0 的行/条目的百分比并且仅返回浮点值?

以下代码返回一个 Series,其中 A 的输出覆盖 B 的输出。

a = df[df['A'] > 0].count()/df['A'].count()

A    0.5
B    0.5
dtype: float64
Run Code Online (Sandbox Code Playgroud)

但是,所需的输出只是一个浮点值,而不是一个系列。

Desired output:
    0.5
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas

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

使用 openpyxl 对 XLSX 工作簿中的选项卡进行排序

我不确定我是否应该或不应该创建一个新问题,因为接受的答案不起作用。请指教。我只是回答同样的问题作为答案吗?这是同一个问题:如何使用 openpyxl 对工作簿中的 Excel 工作表/标签进行排序。我不确定它是否由于用户问题(通常是)或较旧/较新版本的 openpyxl 而不起作用。

这是我的代码:

from openpyxl import Workbook
wb = Workbook()

ws1 = wb.create_sheet("B")
ws2 = wb.create_sheet("A")
ws3 = wb.create_sheet("C")
ws4 = wb.create_sheet("D")

wb._sheets = sorted(wb._sheets) #Error comes up at this line

wb.save('test_tabs.xlsx')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError: '<' not supported between instances of 'Worksheet' and 'Worksheet'
Run Code Online (Sandbox Code Playgroud)

因此,我尝试手动对工作表列表进行排序:

>>> type(wb._sheets)
<class 'list'>

>>> wb._sheets
[<Worksheet "Sheet">, <Worksheet "B">, <Worksheet "A">, <Worksheet "C">, <Worksheet "D">]

>>> wb._sheets = [<Worksheet "A">, <Worksheet "B">, <Worksheet "C">, <Worksheet "D">, <Worksheet "Sheet">] …
Run Code Online (Sandbox Code Playgroud)

python openpyxl

0
推荐指数
1
解决办法
2610
查看次数