2016-11-17 128 views
1

我有一个CSV文件看起来是这个样子〜5M行的列:查找最大值和最小值每N行的CSV数据

11/8/2016  2.495418222 2.501995109 2.488331492 2.504259694 
11/8/2016  2.495759632 1.213707641 2.137418322 2.501118589 
11/8/2016  2.495565218 3.050992103 0.870950956 2.500971719 
11/8/2016  2.494934557 2.500041484 2.489212707 2.455110626 

我试图找到这两个最大和的最小值10000行样本,迭代直到数据结束。 (找到多个最大和最小值的趋势)。 我的代码目前只是每10000行获取一个值,而不是我上面要求的值。

lcd = pan.read_csv('DAQ_Test_2016-08-11.csv',usecols=[0,2,3,4,5],skiprows=[0,1,2],na_filter=False) 
lcd = np.array(lcd) 
tslen2 = len(lcd[:,0]) 

rph2 = 57600 
sfr2 = tslen2/((tslen2/rph2)*(2)) 
currentdata = (lcd[0::sfr2]) 
+0

我不明白,你抢了10,000行。 – IanS

+0

你想要一个滚动窗口或切片吗?滚动是0到10000行的最大和最小值; 1 - 10001; 2 - 10002 ...或切片:0 - 10000; 10000 - 20000; 20000 - 30000 ...? – Kartik

+0

它不完全是10000个值,sfr2是根据行数计算的变量。 (我只是说10000简化)。 – Alex

回答

2

你可以试试这个:

lcd = pan.read_csv('DAQ_Test_2016-08-11.csv',usecols=[0,2,3,4,5],skiprows=[0,1,2],na_filter=False) 

# Group by every 10,000 rows 
groups = lcd.groupby(pd.cut(lcd.index, range(0,len(lcd), 10000))) 
groups.min() 
groups.max() 
+0

简单的解决方案,效果很好。非常感谢。 – Alex

+0

如果我的答案解决了您的问题,请点击该复选标记接受它。 – burhan