【发布时间】:2019-01-03 09:50:14
【问题描述】:
我有一个数据框 (df),其列名是 ["Home", "Season", "Date", "Consumption", "Temp"]。现在我要做的是通过“Home”、“Season”、“Temp”和“Consumption”对这些数据框进行计算。
In[56]: df['Home'].unique().tolist()
Out[56]: [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
In[57]: df['Season'].unique().tolist()
Out[57]: ['Spring', 'Summer', 'Autumn', 'Winter']
这是目前所做的:
series = {}
for i in df['Home'].unique().tolist():
for j in df["Season"].unique().tolist():
series[i, j] = df[(df["Home"] == i) & (df["Consumption"] >= 0) & (df["Season"] == j)]
for key, value in series.items():
value["Corr"] = value["Temp"].corr(value["Consumption"])
这是一个名为“Series”的数据帧字典,作为循环的输出。
我对上一个循环的期望是给我一个数据框字典,其中包含一个新列,即“Corr”添加了“Temp”和“Consumption”的相关值,但它为最后一个家提供了一个数据框在迭代中,即 23.
只需在字典中的所有数据框中添加名为“Corr”的第六列,这将是“Temp”和“Consumption”之间的关联。您能帮我解决上述问题吗?我不知何故错过了最后一个循环中键的使用。提前致谢!
【问题讨论】:
-
您能否添加一个小样本输入和预期输出。这会让问题更清楚。
-
完成@DanielMesejo
-
在
code format中提及您的输出。快照没有给人清晰的感觉,
标签: python python-3.x pandas loops