Python 3.x 为什么会有很多;“南”;从Excel文件导入多索引数据框后是否在索引中?
我有一个Excel文件,在Excel中如下所示:Python 3.x 为什么会有很多;“南”;从Excel文件导入多索引数据框后是否在索引中?,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我有一个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 p
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
我如何解决这个问题,使数据框看起来像Excel中的格式,而没有这么多“NaN”?谢谢 如果不访问Excel文件或不了解版本,就无法确定,但看起来好像有一列数字(第一列),每隔一行空白。Pandas需要均匀填充的列,所以在Excel中,每个第一列编号(id?)的AM和PM都有一种“结构”信息,Pandas只看到两行,其中一行的第一列无效。根据您实际希望访问此数据的方式,一个简单的解决方法是将每个NaN替换为其正上方的数字,因此每行包含“id”的AM或PM信息。另一个修复方法是将列结构更改为具有2016-1-1-am和2016-1-1-pm字段。您正在寻找fillna方法:
df = df.fillna('')
大多数情况下,当Excel看起来像示例中的一样时,它实际上在这些空格处有空格。但是,细胞合并了,所以看起来很漂亮。当您将其导入熊猫时,它会将其读取为空或NaN 要修复它,请向前填充空单元格,然后设置为索引
df.ffill()
尝试用NaN扩展列的宽度,并告诉我是否有任何更改如果没有任何更改,则很可能是因为单元格被解析为数字格式,当它没有看到任何内容时,会将其解释为null。。因此,在导入文件之前,我尝试在Excel中将一些NaN替换为其正上方的数字,而不是将其解析为文本/字符串,如果必须从代码中插入“”,那么它确实起到了作用。但是如何快速地对熊猫做到这一点呢?我知道如果它们是列中的值,我可以使用“replace”,但我不知道如何处理索引。谢谢