【发布时间】:2020-10-30 16:26:32
【问题描述】:
我有一个如下所示的文本文件:
UWI/API WELLNAME WELLNO LABEL OPER PRODFM SURFLAT SURFLON BOTLAT BOTLON PERFTOP PERFBASE PERFSOURCE WELL WELL WELL WELL WELL WELL WELL SYM
ELEV_KB TD COMP_DATE SPUD_DATE INJLIQ INJGAS INJWTR
49025000510000 CH039068 3-A 03WC2NE01 STANOLIND O&G CO 603WLCK2 43.384316 -106.275540 0.000000 0.000000 1525.0 1815.0 4847.00 1815.00 03/20/1925 01/01/1925 0.00 857224.00 6538652.00CO2-INJ
49025000540000 CH036906A 8-A 08WC2NE01 STANOLIND O&G CO 43.383111 -106.278775 0.000000 0.000000 0.0 0.0 1842.00 10/07/1926 01/01/1926 0.00 757266.00 2287490.00CO2-INJ
49025000550000 CH03906B 12-A 12WC2NE01 STANOLIND O&G CO 603WLCK 43.383171 -106.272200 0.000000 0.000000 1448.0 1703.0 4896.00 1916.00 07/23/1924 01/01/1924 0.00 1157524.00 9007039.00CO2-INJ
49025000550000 1448.0 1451.0
49025000550000 1700.0 1703.0
49025000580000 CH03906B 19-A 19WC2NE01 STANOLIND O&G CO 43.380695 -106.280337 0.000000 0.000000 0.0 0.0 1833.00 08/27/1924 01/01/1924 0.00 3602831.00 8002146.00CO2-INJ
49025000580000 1565.0 1833.0
49025000590000 CH03906B 23-AX 23WC2NE01 STANOLIND O&G CO 603WLCK2 43.380810 -106.273800 0.000000 0.000000 1842.0 1916.0 1927.00 10/19/1923 01/01/1923 0.00 2673371.00 9392905.00CO2-INJ
49025000590000 0.0 0.0
当我运行此代码时,输出会将第一行的所有内容放在一列中。我希望第一列是“UWI/API”,第二列是“WELLNAME”,等等...如您所见,数据不是用逗号分隔,而是用空格分隔。数据有点乱?它没有对齐。标头应该是“UWI/API”到“INJWTR”。
这是我的代码:
import pandas as pd
df = pd.read_csv(r'C:/Users/mmcintyre/Documents/Teresa CO2 Injectors_Spaces.txt',sep=r'\s{2,}')
df.to_csv(r'C:/Users/mmcintyre/Documents/Teresa.csv',index=None)
输出是这样的:https://sru365edu-my.sharepoint.com/:x:/g/personal/mam1064_sru_edu/Ebq0tpHveAJBu710UcDt82IB23gmRs6nNrTE-MtDUgkU6Q?e=byhjuL
我突出显示了位置不正确的行。我不确定这是否可以修复。
谢谢! 摩根
【问题讨论】:
-
试试
sep='\s+' -
看起来您也没有在
read_csv函数中完全指定标题。请参阅此处了解更多信息stackoverflow.com/questions/21318865/… -
谢谢保罗!您是如何准确格式化该文本文件的?...我只需要它看起来像那样大声笑!我用你的建议替换了 sep 。至于标题,我应该把它放在我的代码中的什么地方?我把它放在 sep='\s+' 之前和之后,但由于某种原因我不断收到错误。对不起,我是新人!非常感谢您的帮助!
-
出于某种原因,对于不包含这些单元格数据的 API 编号,perftop 和 perfbase 列的值以 wellname 和 wellno 结尾。
标签: python pandas csv export-to-csv