我正在尝试用python编写以下matlab代码:
function[x,y,z] = Testfunc(filename, newdata, a, b)
sheetname = 'Test1';
data = xlsread(filename, sheetname);
if data(1) == 1
newdata(1,3) = data(2);
newdata(1,4) = data(3);
newdata(1,5) = data(4);
newdata(1,6) = data(5)
else
....
....
....
这是一个很长的功能,但这是我被卡住的部分,我一点都不知道。这是我迄今为止在python中所写的内容:
import pandas as pd
def test_func(filepath, newdata, a, b):
data = pd.read_excel(filepath, sheet_name = 'Test1')
if data[0] == 1:
我被困在这里,伙计们,我甚至不确定"如果"的说法是否正确。我正在寻求建议和帮助。
信息:excel表格有1行13列,newdata也是一个二维矩阵
尝试运行该代码并打印出数据帧(print(data)
(。您将看到数据帧不同于MATLAB矩阵。read_excel
将尝试推断您的列,因此您可能没有行,只有列。防止熊猫阅读专栏使用:
data = pd.read_excel(filepath, sheet_name='Test1', header=None)
使用索引访问data
将对该行进行索引。因此,您的比较是试图找出该行是否等于1(在您的情况下,这从来都不是真的(。若要对给定单元格进行索引,必须首先对该行进行索引。要实现您在MATLAB中所做的操作,请在数据帧上使用iloc
索引器:data.iloc[0,0]
。它在中执行的操作将访问第0行的元素0。你的代码应该是这样的:
import pandas as pd
def test_func(filepath, newdata, a, b):
data = pd.read_excel(filepath, sheet_name = 'Test1')
if data.iloc[0,0] == 1:
newdata.iloc[0,2:6] = data.iloc[0,1:5]
....
我建议你读一读熊猫索引。