Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么PANASA.Read FFWF不按指令跳过空白行?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在读取一个固定宽度的格式(<a href="ftp://ftp.ncdc.noaa.gov/pub/data/noaa/isd-history.txt" rel="nofollow noreferrer">full source file</a>),其中充满了丢失的数据,因此<code>pandas.read_fwf</code>很方便。标题后面有一个空行,因此我要传递<code>skip_blank_lines=True</code>,但这似乎没有效果,因为第一个条目仍然充满了NaN/NaT:</p> <pre class="lang-py prettyprint-override"><code>import io import pandas s="""USAF WBAN STATION NAME CTRY ST CALL LAT LON ELEV(M) BEGIN END 007018 99999 WXPOD 7018 +00.000 +000.000 +7018.0 20110309 20130730 007026 99999 WXPOD 7026 AF +00.000 +000.000 +7026.0 20120713 20170822 007070 99999 WXPOD 7070 AF +00.000 +000.000 +7070.0 20140923 20150926 008260 99999 WXPOD8270 +00.000 +000.000 +0000.0 20050101 20100920 008268 99999 WXPOD8278 AF +32.950 +065.567 +1156.7 20100519 20120323 008307 99999 WXPOD 8318 AF +00.000 +000.000 +8318.0 20100421 20100421 008411 99999 XM20 20160217 20160217 008414 99999 XM18 20160216 20160217 008415 99999 XM21 20160217 20160217 008418 99999 XM24 20160217 20160217 010000 99999 BOGUS NORWAY NO ENRS 20010927 20041019 010010 99999 JAN MAYEN(NOR-NAVY) NO ENJA +70.933 -008.667 +0009.0 19310101 20200111 010013 99999 ROST NO 19861120 19880105 010014 99999 SORSTOKKEN NO ENSO +59.792 +005.341 +0048.8 19861120 20200110 """ print(pandas.read_fwf(io.StringIO(s), parse_dates=["BEGIN", "END"], skip_blank_lines=True)) </code></pre> <p>其结果是:</p> <pre><code>USAF WBAN STATION NAME ... ELEV(M) BEGIN END 0 NaN NaN NaN ... NaN NaT NaT 1 7018.0 99999.0 WXPOD 7018 ... 7018.0 2011-03-09 2013-07-30 2 7026.0 99999.0 WXPOD 7026 ... 7026.0 2012-07-13 2017-08-22 3 7070.0 99999.0 WXPOD 7070 ... 7070.0 2014-09-23 2015-09-26 4 8260.0 99999.0 WXPOD8270 ... 0.0 2005-01-01 2010-09-20 5 8268.0 99999.0 WXPOD8278 ... 1156.7 2010-05-19 2012-03-23 6 8307.0 99999.0 WXPOD 8318 ... 8318.0 2010-04-21 2010-04-21 7 8411.0 99999.0 XM20 ... NaN 2016-02-17 2016-02-17 8 8414.0 99999.0 XM18 ... NaN 2016-02-16 2016-02-17 9 8415.0 99999.0 XM21 ... NaN 2016-02-17 2016-02-17 10 8418.0 99999.0 XM24 ... NaN 2016-02-17 2016-02-17 11 10000.0 99999.0 BOGUS NORWAY ... NaN 2001-09-27 2004-10-19 12 10010.0 99999.0 JAN MAYEN(NOR-NAVY) ... 9.0 1931-01-01 2020-01-11 13 10013.0 99999.0 ROST ... NaN 1986-11-20 1988-01-05 14 10014.0 99999.0 SORSTOKKEN ... 48.8 1986-11-20 2020-01-10 [15 rows x 11 columns] </code></pre> <p>行0仍然具有所有列的值。我希望第0行是第一个非空数据行,从007018开始。为什么<code>skip_blank_lines=True</code>似乎没有效果?我怎么能告诉熊猫跳过空白行呢?我做错什么了吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果有一个列肯定会有一些值,如果删除该列的空行,这可能会起作用</p> <p>试试下面</p> <pre><code>df.dropna(subset=['WBAN'], how='all', inplace=True) print(df.head()) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何合并多个PDF文件?
3 回答
如何合并多个xarray数据变量及其坐标?
4 回答
如何合并多个列中具有重复值的行
7 回答
如何合并多个唯一id
6 回答
如何合并多个图纸并使用图纸名称的名称重命名列名?
5 回答
如何合并多个字典并添加同一个键的值?(Python)
6 回答
如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?
8 回答
如何合并多个数据帧
3 回答
如何合并多个数据帧并使用Pandas为假人添加列?
7 回答
如何合并多个数据帧并按时间戳排序
1 回答
如何合并多个数据帧的列表并用另一个lis标记每列
9 回答
如何合并多个数据框中的列
1 回答
如何合并多个文件?
3 回答
如何合并多个查询集?
8 回答
如何合并多个绘图?
8 回答
如何合并多个词典
5 回答
如何合并多个输入数据集(数据帧)?
3 回答
如何合并多条记录中拆分的文本行
2 回答
如何合并多索引列datafram
5 回答
如何合并多级(即多索引)数据帧?
2 回答