【问题标题】:How to fill a dataframe within a loop?如何在循环中填充数据框?
【发布时间】:2022-01-11 22:55:28
【问题描述】:

我有 3 个站 TemmpDict 的每日温度数据字典。键是站名,值是温度数据系列。 我想遍历这个字典并创建一个数据框,其中包含每个站的 tmax 数据和平均 tmax 值。我尝试使用以下循环来做到这一点:

d=[]
for j in TempDict:
    df=TempDict[j]
    df.tmax=df.tmax.apply(pd.to_numeric,errors='coerce')
    d.append((df.tmax,df.tmax.mean()))
LargeFrame=pd.DataFrame(d,columns=('tmax','meanmax'),index=StationList)

当我打印 LargeFrame 时,这似乎有效。 但是当我循环并尝试绘制每个站点的 tmax 数据时,我得到“TypeError:没有要绘制的数字数据”

for j in LargeFrame:
    LargeFrame.tmax.plot()

如何将这些数据存储在数据框中,以便我仍然可以绘制它?

【问题讨论】:

  • 运行LargeFrame.dtypes会看到哪些数据类型?
  • tmax:对象和 meanmax:float64。我试过“LargeFrame['tmax']=LargeFrame['tmax'].astype(float)”但得到“ValueError: setting an array element with a sequence。”
  • 所以下一个错误可以参考下面的link。它应该是你需要的。
  • 但是我将如何修复我的代码?我知道这是一个系列,但不知道该怎么办
  • 你能发一个sample of your data吗?人们会更容易回答这个问题。不是我,因为我已经完成了这一天,而是其他人:)

标签: python pandas dataframe numpy


【解决方案1】:

问题不在于我如何存储数据,而在于我如何循环到LargeFrame 以尝试绘制 tmax。这就是我能够获得我正在寻找的地块的方式:

for index, row in LargeFrame.iterrows():
    LargeFrame.tmax[index].plot()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 2022-05-04
    • 2012-11-06
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多