【问题标题】:Finding max and min value every N rows in columns of CSV data在 CSV 数据列中每 N 行查找最大值和最小值
【发布时间】:2016-11-17 17:28:21
【问题描述】:

我有一个大约 500 万行的 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])

【问题讨论】:

  • 我看不到你在哪里抓取 10,000 行。
  • 您想要滚动窗口还是切片?第 0 - 10000 行的滚动是最大值和最小值; 1 - 10001; 2 - 10002 ...或切片:0 - 10000; 10000 - 20000; 20000 - 30000 ... ?
  • 不完全是10000个值,sfr2是根据行数计算出来的变量。 (为了简化,我只是说 10000)。

标签: python csv pandas


【解决方案1】:

你可以试试这个:

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()

【讨论】:

    猜你喜欢
    • 2020-05-25
    • 1970-01-01
    • 2015-06-29
    • 2016-03-19
    • 2020-05-21
    • 2018-01-08
    • 2018-05-03
    相关资源
    最近更新 更多