这是为什么会有NaN?
题主面临两个问题:1. NaN是什么?2. 读出来的DataFrame为什么有NaN?
问题1. NaN是Not a Number的缩写,意为不是一个数字,常用来表示数据中的缺失值或无效值。NaN本质上就是numpy的一个特殊值numpy.nan,正因为有了numpy.nan,才可以对残缺不全的数据结构进行各类运算。
问题2. 题主期望将每一行数据解读到3列中,却没有指定分隔符,导致整行数据写到第1列,后面两列没有数据可写,自然就出现了NaN。试试这样的写法:
df = pd.read_table('P1-4.DAT', sep='\t', header=None, names=[1,2,3])
或者
df = pd.read_table('P1-4.DAT', sep=' ', header=None, names=[1,2,3])