最近遇到了一个比较棘手的数据表。
表中本来是没有|
的,为了叙述方便,我截取一部分在org-mode下整理了之后,长这样:
| gender | year_of_birth | days_to_birth | vital_status | days_to_death |
|--------+---------------+---------------+--------------+---------------|
| male | 1929 | -26377 | Dead | 2393 |
| female | 1929 | -25132 | Dead | 999 |
| female | 1937 | -24057 | Dead | 1492 |
| female | 1949 | -23062 | Dead | 193 |
| female | 1938 | Dead | 905 | 69 |
| male | 1937 | Dead | 1171 | 68 |
| female | 1944 | -22875 | Dead | 339 |
本来应该按照\t
或空格分列,三列之间该出现两个\t
,但由于缺失值和数据存储格式的关系,有的地方只有一个,这就造成一些数值所处的列发生的错乱,比如[4:6,2]
那两处,应该在[4:6,3]
才对,后边的顺延。但是很多行的缺失都不止一处,而导致错乱的次数也是不固定的。
我也试过用关键字把需要的信息提取出来,性别、状态这种还好,天数由于没有取值范围,跟年份19XX、20XX无法区分,跟两位数的年龄也无法区分;如果遇到紧邻的两列都是天数或年数,也无法锁定大致范围后筛选。
原始数据来自不同团队,有些缺失确实不是技术原因,也改进不了,最终版也只能这样了。我手上这个是大概1000*30的表,手动改也不现实,我只是提取并处理些数据。
可以提供个思路吗?谢谢!