Efficient code for sd card speed

I want to log the reading which was used to do the math and am unable to do so

What math? There is no single reading to do any calculations.

Basically, you take two reading of pressure each pass through loop() and assign the average value to senval[2].
You then use these values to compare with previous readings to determine max and min and peaks.

The value assigned to Pressure at the beginning of loop() which is logged is an independent reading.

Perhaps you want to be logging senval[2]? Try

void loop()
{
  float Pressure;
  //time = millis();
  Serial.print("\tprogramstarttime\t");
  Serial.println(time);
  //Pressure = getPressure();

  if (count == 0)
  {
    senval[1] = getPressure();//pressure_mmhg;

    senval[1] = (senval[1] + getPressure()) / 2;
    ++count;
  }

  else
  {
    senval[2] = getPressure();//pressure_mmhg;

    senval[2] = (senval[2] + getPressure()) / 2;
    Pressure = senval[2];
    time = millis(); // move to time of measurement
    Serial.print("\t senval[0]\t");
    Serial.println(senval[0]);
    Serial.print("\t senval[1]\t");
    Serial.println(senval[1]);
    Serial.print("\t senval[2]\t");
    Serial.println(senval[2]);

How to batch the sd card code to reopen file periodically?

Do not open and close the file each pass of the loop. The SD library actually buffers 512 bytes of the data and physically writes to the card when the buffer is full. Open the file in setup, leave it open. You can close the file when the test is complete (if you know when that is) or close and reopen the file on a timer(perhaps every minute or so, depending on how long your tests last.

Another possibility top speed things up is to switch from the SD library to SdFat.h which is faster.