经过很长时间这是我的问题!!我在StackOverflow上搜索了其他问答,但没有找到任何有用的答案 .
我有一个pandas DataFrame与列,如
|---------------------|------------------|
| date | Prediction |
|---------------------|------------------|
| 2014-01-01 | 0.0 |
|---------------------|------------------|
| 2014-01-01 | 0.0 |
|---------------------|------------------|
| 2014-01-02 | 0.0 |
|---------------------|------------------|
| 2014-01-02 | 0.0 |
|---------------------|------------------|
我想在 Prediction
列的单元格中设置值(使用 date
列上的groupby操作)而不是0.为此假设我的预测是具有两个值的数据帧 x
|---------------------|------------------|
| date | yhat |
|---------------------|------------------|
| 2014-01-01 | 2.0 |
|---------------------|------------------|
| 2014-01-02 | 3.0 |
|---------------------|------------------|
我正在尝试做如下 df.groupby('date', as_index=False)['Prediction'] = x['yhat']
但它给我一个错误:
TypeError:'DataFrameGroupBy'对象不支持项目分配
我对输出的期望是:
|---------------------|------------------|
| date | Prediction |
|---------------------|------------------|
| 2014-01-01 | 2.0 |
|---------------------|------------------|
| 2014-01-01 | 2.0 |
|---------------------|------------------|
| 2014-01-02 | 3.0 |
|---------------------|------------------|
| 2014-01-02 | 3.0 |
|---------------------|------------------|
由于分组操作基本上是两行数据帧,因此我期望它能够工作,因为 x
也是一个带有2个值的pandas数据帧 .
任何有关实现这一目标的建议都非常受欢
EDIT 我的数据框中有更多日期(比上面的示例所示) . 我只需要为特定日期(不是所有日期)填充预测列值 .
谢谢 .
1 回答
您可以使用
join()
操作执行此操作 . 例如:但是现在这些列并不完全是你原来的
Prediction
并重命名yhat
: