首页 > 解决方案 > 如何在熊猫中读取带有空单元格的漂亮打印表格?

问题描述

假设我有一张这样的桌子

INDEX      COL_A  COL_B
1          Yes    6    
2          No     7    
3          Yes    6    

我可以用

import pandas as pd
df = pd.read_table('table', delimiter='\s\s+')

正如这里建议的那样https://stackoverflow.com/a/43225248/3014199。但这假设没有空单元格。如果缺少(最后)B 列中的一个单元格,我很幸运,并且该单元格被填满,None但是如果 A 列中的一个单元格为空,则它右侧的所有单元格都向左移动一个单元格,并且None位于 B 列中再次。

我可以手动执行此操作,从标题中推断切片索引,然后df从列表列表中手动构建一个,但我想知道是否可以使用 pandas 来完成。

更新:
df = pd.read_fwf('table', index_col=0)成功了!

标签: pythonpandas

解决方案


Pandas 有一个固定宽度格式行的功能,所以也许你可以使用它?从文件中读取它的工作...

“table.txt”包含:

INDEX      COL_A  COL_B
1          YES    6    
2                 7    
3          Yes    

Python代码

import pandas as pd
df = pd.read_fwf('table.txt')

数据框(df):

    INDEX   COL_A   COL_B
0   1       YES     6.0
1   2       NaN     7.0
2   3       Yes     NaN

您还可以使用 'index_col' 参数将 'INDEX' 设置为索引。文档:pandas.read_fwf


推荐阅读