Pandas misinterprets the string 'null' in a text file as a float
#### Code Sample, a copy-pastable example if possible
Using the latest anaconda3 on Windows 10 and opening a jupyter notebook.
I have a text file with 1 million rows.  The file is read into a dataframe and each line is processed by converting it to bytes and then encoding it to base64. The processed result is written to a new dataframe line by line.
```
import time
import base64
words = pd.read_table("BigFile.txt",names=['word'],encoding="utf-8",header=None)
FileSize=70500
dfWords = pd.DataFrame(columns=['sb64'])
start = time.perf_counter() 
for x in range(FileSize):
    dfWords = dfWords.append({'sb64':base64.b64encode(words.word[x].encode('UTF-8')).decode()},ignore_index=True)
end = time.perf_counter() 
print(end - start, "seconds")
print("Dataframe Contents ", dfWords, sep='\n')
```

#### Problem description

The following error occurs 
```
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-30-e708c684ba6f> in <module>
      9 start = time.perf_counter()
     10 for x in range(FileSize):
---> 11     dfWords = dfWords.append({'sb64':base64.b64encode(words.word[x].encode('UTF-8')).decode()},ignore_index=True)
     12 end = time.perf_counter()
     13 print(end - start, "seconds")

AttributeError: 'float' object has no attribute 'encode'

```
#### Expected Output

However, there is no error if FileSize is less than 70002

```
86.83772959999988 seconds
Dataframe Contents 
                   sb64
0      ZGlmZmVyZW5jZQ==
1              d2hlcmU=
2                  bWM=
3                  aXM=
4                  dGhl
...                 ...
69996          YnVuZGxl
69997              b2Y=
69998      cmVsYXRpb25z
69999              YW5k
70000              YXM=

[70001 rows x 1 columns]

```
The error points to the index referencing the dataframe row. My guess is that above a certain size, Python decides to use floats instead of integers

#### Output of ``pd.show_versions()``

<details>

[paste the output of ``pd.show_versions()`` here below this line]
INSTALLED VERSIONS
------------------
commit           : None
python           : 3.7.4.final.0
python-bits      : 64
OS               : Windows
OS-release       : 10
machine          : AMD64
processor        : Intel64 Family 6 Model 62 Stepping 4, GenuineIntel
byteorder        : little
LC_ALL           : None
LANG             : None
LOCALE           : None.None

pandas           : 0.25.1
numpy            : 1.16.5
pytz             : 2019.3
dateutil         : 2.8.0
pip              : 19.2.3
setuptools       : 41.4.0
Cython           : 0.29.13
pytest           : 5.2.1
hypothesis       : None
sphinx           : 2.2.0
blosc            : None
feather          : None
xlsxwriter       : 1.2.1
lxml.etree       : 4.4.1
html5lib         : 1.0.1
pymysql          : None
psycopg2         : None
jinja2           : 2.10.3
IPython          : 7.8.0
pandas_datareader: None
bs4              : 4.8.0
bottleneck       : 1.2.1
fastparquet      : None
gcsfs            : None
lxml.etree       : 4.4.1
matplotlib       : 3.1.1
numexpr          : 2.7.0
odfpy            : None
openpyxl         : 3.0.0
pandas_gbq       : None
pyarrow          : None
pytables         : None
s3fs             : None
scipy            : 1.3.1
sqlalchemy       : 1.3.9
tables           : 3.5.2
xarray           : None
xlrd             : 1.2.0
xlwt             : 1.3.0
xlsxwriter       : 1.2.1
</details>
