重采样pandas dataframe正在删除列

2024-10-03 02:45:07 发布

您现在位置:Python中文网/ 问答频道 /正文

                    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

上面的数据帧有一个日期时间索引。我重新取样如下:

^{pr2}$

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

                    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

为什么“Val”列消失了?所有其他的专栏似乎也一团糟。请参见Linearly interpolate missing rows in pandas dataframe以了解数据帧来自何处的说明。在

--编辑 基于@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]}

--编辑:以上数据帧的csv文件全部如下:

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


Tags: csv数据id编辑index时间valnan
1条回答
网友
1楼 · 发布于 2024-10-03 02:45:07

由于某些原因,Val列可能没有数字数据类型,object列中的所有非数字(例如object数据类型)列都将被删除。在

要检查,只需查看df.info()
要将其转换为数值列,可以使用astype(float)convert_objectspd.to_numeric从v0.17开始)。在

相关问题 更多 >