如何将含Pandas DataFrame与字典的元组转换为指定列DataFrame?解决转换时的AttributeError错误
解决方法:从元组中提取已有DataFrame并转换索引为列
我来帮你搞定这个问题!首先得明确:你调用hf.extract_nwis_df()返回的是一个包含两个元素的元组:
- 第一个元素是已经整理好的Pandas DataFrame(就是输出里显示有26410行、2列的那个),它的索引正好是你需要的
datetimeUTC - 第二个元素是站点元数据的字典,和你要的表格数据无关
你之前尝试的两种方法都出错,是因为把整个元组直接传给了pd.DataFrame(),Pandas没办法同时处理DataFrame和字典这两种不同类型的元素,才抛出了AttributeError。
正确的处理步骤
- 先提取元组中的第一个元素(也就是现成的目标DataFrame)
- 将原索引
datetimeUTC转换为普通列,这样就得到你需要的三列了
对应的代码如下:
# 提取元组中的第一个元素:已有的DataFrame raw_df = longmont_discharge[0] # 将索引转换为普通列,生成最终的DataFrame final_df = raw_df.reset_index() # 查看前几行验证结果 print(final_df.head())
结果说明
执行完上面的代码后,final_df就会包含你要求的三列:
datetimeUTC:从原索引转换而来的时间列USGS:06730500:00060:00003:原有的流量数据列USGS:06730500:00060:00003_qualifiers:原有的质量标记列
如果你需要保留datetimeUTC作为索引,同时又要它作为一列,可以用下面的代码替代reset_index():
final_df = raw_df.assign(datetimeUTC=raw_df.index)
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

