好的我将尝试解释我的问题,我有一个带有数据的csv文件,数据是波长和幅度,图像包含在这里。
所以,我想只选择500nm到800nm(波长)之间的数据,
import pandas as pd
import numpy as np
excelfile=pd.read_csv('Files/660nm.csv');
excelfile.head();
wave = excelfile['Longitud'];
wave = np.array(wave);
X = excelfile['Amplitud'];
X = np.array(X);
wave = wave[(wave > 500) & (wave < 800)]
这是我想要的第一个例子,但是我想将这个选择扩展到幅度(X)列,以便有两个相同尺寸的数组。在我的实际代码中,我必须做一个索引来选择幅度数组(X)中的数据:
indices = np.arange(382,775,1)
X = np.take(X, indices)
但这不是最好的做法,如果我不能将第一列选择扩展到幅度列,我不必再制作另一个数组来索引X数组,并检查数组的扩展,对它的任何想法?谢谢。
就像@ALollz指出的那样,你不应该拆分DataFrame。而只是在波长上过滤整个数据帧。请参阅DataFrame.loc
的文档
import pandas as pd
import numpy as np
# some dummy data
excelfile = pd.DataFrame({'Longitud': np.random.random(100) * 1000,
'Amplitud': np.arange(100)})
wave = excelfile['Longitud']
excelfile_filtered = excelfile.loc[(wave > 500) & (wave < 800)]
X = excelfile_filtered ['Amplitud'].values # yields an array