作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我目前有一个看起来像这样的数据框:
我想添加一个名为“Predictors”的全新列,其中只有一个包含数组的单元格。
因此 [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)
最佳答案
您可以用 NaN
填充所需列中的其余单元格,但它们不会“为空”。为此,请在两个索引上使用 pd.merge
:
设置
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Actual': [18.442, 15.4233, 20.6217, 16.7, 18.185],
'Forecasted': [19.6377, 13.1665, 19.3992, 17.4557, 14.0053]
})
arr = np.zeros(3)
df_arr = pd.DataFrame({'Predictors': [arr]})
合并 df 和 df_arr
result = pd.merge(
df,
df_arr,
how='left',
left_index=True, # Merge on both indexes, since right only has 0...
right_index=True # all the other rows will be NaN
)
结果
>>> print(result)
Actual Forecasted Predictors
0 18.4420 19.6377 [0.0, 0.0, 0.0]
1 15.4233 13.1665 NaN
2 20.6217 19.3992 NaN
3 16.7000 17.4557 NaN
4 18.1850 14.0053 NaN
>>> result.loc[0, 'Predictors']
array([0., 0., 0.])
>>> result.loc[1, 'Predictors'] # actually contains a NaN value
nan
关于python - Pandas 如何将数组放在单个数据框单元格中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51218488/
我是一名优秀的程序员,十分优秀!