我在Excel中有一个Excel文件如下所示:
2016-1-1 2016-1-2 2016-1-3 2016-1-4
300100 am 1 3 5 1
pm 3 2 4 5
300200 am 2 5 2 6
pm 5 1 3 7
300300 am 1 6 3 2
pm 3 7 2 3
300400 am 3 1 1 3
pm 2 5 5 2
300500 am 1 6 6 1
pm 5 7 7 5
但是在我通过pd.read_excel导入并打印之后,它在Python中显示如下:
2016-1-1 2016-1-2 2016-1-3 2016-1-4
300100 am 1 3 5 1
NaN pm 3 2 4 5
300200 am 2 5 2 6
NaN pm 5 1 3 7
300300 am 1 6 3 2
NaN pm 3 7 2 3
300400 am 3 1 1 3
NaN pm 2 5 5 2
300500 am 1 6 6 1
NaN pm 5 7 7 5
如何在没有太多" NaN"谢谢!
答案 0 :(得分:2)
大多数情况下,当Excel看起来与示例中的内容相似时,它确实会在这些空格所在的位置显示空白。但是,细胞被合并,所以它看起来很漂亮。将它导入pandas时,它会将它们读为空或NaN。
要修复它,请向前填充空单元格,然后设置为索引。
df.ffill()
答案 1 :(得分:1)
如果无法访问Excel文件或版本知识,则无法确定,但只是看起来您有一列数字(第一列),其他每一行都是空白的。 Pandas期望统一填充列,因此在Excel中,对于每个第一列编号(id?),AM和PM都有一种“结构”信息,Pandas只看到两行,一行有无效的第一列。根据您实际想要访问此数据的方式,一个简单的解决方法是将每个NaN替换为其正上方的数字,因此每行包含“id”的AM或PM信息。另一个修复方法是将列结构更改为2016-1-1-am和2016-1-1-pm字段。
答案 2 :(得分:0)
您正在寻找fillna方法:
df = df.fillna('')