我正面临使用 pandas set_index 函数的奇怪行为。我最初有这个数据框:
Unnamed: 0 Timestamps PM10
0 NaN NaT PM10
1 NaN NaT ▒g/m▒
2 NaN 2018-12-31 23:00:00 10.76
3 NaN 2018-12-31 22:00:00 9.46
4 NaN 2018-12-31 21:00:00 8.67
... ... ... ...
8682 NaN 2018-01-01 04:00:00 25.14
8683 NaN 2018-01-01 03:00:00 31.34
8684 NaN 2018-01-01 02:00:00 36.28
8685 NaN 2018-01-01 01:00:00 21.78
8686 NaN 2018-01-01 00:00:00 20.59
我想删除前两行并将时间戳设置为indeces,所以我这样做:
df_final = df.drop([0,1]).set_index('Timestamps', drop=True)
我得到了这个数据框:
Unnamed: 0 PM10
Timestamps
2018-12-31 23:00:00 NaN 10.76
2018-12-31 22:00:00 NaN 9.46
2018-12-31 21:00:00 NaN 8.67
2018-12-31 20:00:00 NaN 10.42
2018-12-31 19:00:00 NaN 10.04
... ... ...
2018-01-01 04:00:00 NaN 25.14
2018-01-01 03:00:00 NaN 31.34
2018-01-01 02:00:00 NaN 36.28
2018-01-01 01:00:00 NaN 21.78
2018-01-01 00:00:00 NaN 20.59
到目前为止一切顺利,但最后我想用我创建的名为 t_index 的新时间索引重新索引 PM10 列,所以我这样做:
data_write = df_final.PM10[-1::-1].reindex(t_index)
那是我得到一个错误的地方:
TypeError: 'NoneType' object is not iterable
经过一些调试后,我得出结论是 set_index 导致了这种情况,但我不知道为什么,感谢任何帮助!