首页 > 解决方案 > 与 Pivot_Table 合并后结果列中的错误

问题描述

在最近合并的 DataFrame 上应用Pivot_Table后,我意识到我得到的列不是我所期望的。

基本上,而不是得到这个输出:

 df4.Ammonia:

 NAN
 NAN
 NAN
 .
 .

我得到了这个输出:

 df4.Ammonia:

 Time
 2013-11-01 00:00:00   NaN
 2013-11-01 01:00:00   NaN
 2013-11-01 02:00:00   NaN 
 .
 .

每次我检查一列时,列索引似乎都会出现!

这是我的代码:

Mi_Pollution['Measurement'] = Mi_Pollution['Measurement'].astype(float)
Mi_Pollution['Sensor_ID'] = Mi_Pollution['Sensor_ID'].astype(float)
Mi_Pollution['Time']=list(Mi_Pollution.index)
Mi_Pollution.reset_index()
df3 = Mi_Pollution.merge(Pollutants, on='Sensor_ID', how='left')

然后:

df4 = df3.pivot_table(index=['Time'],values='Measurement',columns='Sensor_Type')

任何建议都会非常感激,谢谢你。

标签: pythonpandasdataframepivot-tablemultiple-columns

解决方案


可以预期,您会得到Datetimeindex,因为indexpivot_table创建返回的列的创建索引中的参数后的列DataFrame- 这里time创建了列DatetimeIndex

通过以下方式检查:

print (df4.index)

如果需要默认索引用于将 DattimeIndex 转换为新列并将DataFrame.reset_index其替换为删除列名(字符串):RangeIndexDataFrame.rename_axisTime

df4 = df4.reset_index().rename_axis(None, axis=1)

推荐阅读