重新采样pandas数据帧正在删除列

use*_*827 6 python pandas

                    Val         ts  year  doy     interpolat  region_id
2000-02-18          NaN  950832000  2000   49           NaN      19987
2000-03-05          NaN  952214400  2000   65           NaN      19987
2000-03-21          NaN  953596800  2000   81           NaN      19987
2000-04-06  0.402539365  954979200  2000   97           NaN      19987
2000-04-22   0.54021746  956361600  2000  113           NaN      19987
Run Code Online (Sandbox Code Playgroud)

上述数据帧具有日期时间索引.我重新取样就像这样:

df = df.resample('D')
Run Code Online (Sandbox Code Playgroud)

但是,此重新采样会导致此数据帧:

                    ts  year  doy    interpolat  region_id
2000-01-01  1199180160  2008    1             1      19990
2000-01-02         NaN   NaN  NaN           NaN        NaN
2000-01-03         NaN   NaN  NaN           NaN        NaN
2000-01-04         NaN   NaN  NaN           NaN        NaN
2000-01-05         NaN   NaN  NaN           NaN        NaN
Run Code Online (Sandbox Code Playgroud)

为什么'Val'栏会消失?所有其他专栏似乎也搞砸了.请参阅线性插入pandas数据帧中的缺失行,以获取数据帧来源的说明.

--EDIT基于@ unutbu的问题:

df.reset_index().to_dict('list')

{'index': [Timestamp('2000-02-18 00:00:00'), Timestamp('2000-03-05 00:00:00'), Timestamp('2000-03-21 00:00:00'), ... '0.670709965', '0.631584375', '0.562112815', '0.50740686', '0.4447712', '0.47880806', nan, nan]}
Run Code Online (Sandbox Code Playgroud)

- 编辑:上述数据框的csv文件完整地在这里:

https://www.dropbox.com/s/dp76hk6yfs6c1og/test.csv?dl=0

jor*_*ris 11

由于Val某种原因,列可能没有数字dtype,并且所有非数字(例如objectdtype)列都将被删除resample.

要查看,请看一下df.info().
要将其转换为数字列,您可以使用astype(float)convert_objects(pd.to_numeric从v0.17开始).