The macro which detect integer is\pgfmathprintnumber@INT@DETECT defined like this
\def\pgfmathprintnumber@INT@DETECT#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@INT@DETECT@issci\pgfmathresult\relax
}
If the input number is an integer no period is displayed at all. If not, the scientific format is chosen.
To change this and use fixed format instead of scientific you can change the macro \pgfmathprintnumber@INT@DETECT@issci which is defined like this
\def\pgfmathprintnumber@INT@DETECT@issci#1#2e#3\relax{%
\begingroup
\ifnum#1<3\relax
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloattofixed{\pgfmathresult}%
\let\pgfmathfloat@round@precision@=\pgfmathfloat@round@precision
\def\pgfmathfloat@round@precision{6}%
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\let\pgfmathfloat@round@precision=\pgfmathfloat@round@precision@
\ifpgfmathfloatroundhasperiod
\pgfmathprintnumber@SCI@issci#1#2e#3\relax
\else
\expandafter\pgfmathprintnumber@fixed@style\expandafter{\pgfmathresult}#1#2e#3\relax
\fi
\else
\pgfmathfloatrounddisplaystyle#1#2e#3\relax%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
With this
\def\pgfmathprintnumber@INT@DETECT@issci#1#2e#3\relax{%
\begingroup
\ifnum#1<3\relax
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloattofixed{\pgfmathresult}%
\let\pgfmathfloat@round@precision@=\pgfmathfloat@round@precision
\def\pgfmathfloat@round@precision{6}%
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\let\pgfmathfloat@round@precision=\pgfmathfloat@round@precision@
\ifpgfmathfloatroundhasperiod
\expandafter\pgfmathroundtozerofill\expandafter{\pgfmathresult}
\expandafter\pgfmathprintnumber@fixed@style\expandafter{\pgfmathresult}#1#2e#3\relax
\else
\expandafter\pgfmathprintnumber@fixed@style\expandafter{\pgfmathresult}#1#2e#3\relax
\fi
\else
\pgfmathfloatrounddisplaystyle#1#2e#3\relax%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
And your code become
\documentclass[12pt]{standalone}
\usepackage{filecontents}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\makeatletter
\def\pgfmathprintnumber@INT@DETECT@issci#1#2e#3\relax{%
\begingroup
\ifnum#1<3\relax
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloattofixed{\pgfmathresult}%
\let\pgfmathfloat@round@precision@=\pgfmathfloat@round@precision
\def\pgfmathfloat@round@precision{6}%
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\let\pgfmathfloat@round@precision=\pgfmathfloat@round@precision@
\ifpgfmathfloatroundhasperiod
\expandafter\pgfmathroundtozerofill\expandafter{\pgfmathresult}
\expandafter\pgfmathprintnumber@fixed@style\expandafter{\pgfmathresult}#1#2e#3\relax
\else
\expandafter\pgfmathprintnumber@fixed@style\expandafter{\pgfmathresult}#1#2e#3\relax
\fi
\else
\pgfmathfloatrounddisplaystyle#1#2e#3\relax%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\makeatother
\begin{document}
\begin{filecontents}{data.csv}
81
81.0234
81.4520
\end{filecontents}
\pgfplotstabletypeset[
col sep=comma,
precision=1,
int detect,
]{data.csv}
\end{document}
Result

int detect– percusse Oct 13 '15 at 11:00\pgfmathisintstuff. I'll try to look at it later in case it's not answered yet. – percusse Oct 13 '15 at 11:15