好,我要尝试解释我的问题,我有一个带数据的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数组,也不必检查该数组的扩展,有关呢? 谢谢。
答案 0 :(得分:0)
就像@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