【发布时间】:2018-12-15 12:58:17
【问题描述】:
所以我目前有一个看起来像这样的数据框:
我想添加一个名为“预测器”的全新列,其中只有一个包含数组的单元格。
所以 [0, 'Predictors'] 应该包含一个数组,并且同一列中该单元格下方的所有内容都应该为空。
这是我的尝试,我尝试创建一个仅包含“预测器”列的单独数据框,并尝试将其附加到当前数据框,但我得到:'长度不匹配:预期轴有 3 个元素,新值有 4元素。'
如何将包含数组的单个单元格附加到我的数据框?
# create a list and dataframe to hold the names of predictors
dataframe=dataframe.drop(['price','Date'],axis=1)
predictorsList = dataframe.columns.get_values().tolist()
predictorsList = np.array(predictorsList, dtype=object)
# Combine actual and forecasted lists to one dataframe
combinedResults = pd.DataFrame({'Actual': actual, 'Forecasted': forecasted})
predictorsDF = pd.DataFrame({'Predictors': [predictorsList]})
# Add Predictors to dataframe
#combinedResults.at[0, 'Predictors'] = predictorsList
pd.concat([combinedResults,predictorsDF], ignore_index=True, axis=1)
【问题讨论】:
-
(1) Pandas 并非设计用于处理数组项。将数组作为项目是一个坏主意。 (2) Pandas 中没有 empty 单元格之类的东西。每个单元格都必须有一个值。 (3) 为什么不将预测变量保留在自己的变量中?
-
Pandas“单元格”中的列表可能有点棘手,因为它们会导致意外广播。在分配值时添加非广播调用,例如,
list(list_variable)可以通过阻止广播来帮助解决这个问题。显然,这只能在不需要广播时使用。
标签: python pandas dataframe statistics data-science