如何用列的特定值填充列?

时间:2019-04-01 20:41:14

标签: python pandas dataframe

我有一些完全混乱的Excel表,我根本不知道如何处理它们。
情况是这样的:我已经将Excel文件导入到Python中,并且我注意到有些变量要用相同的特定值替换为零。具体来说,我的数据具有一些将观察值分组的分类变量,并且在每个类别中,只有一个列的值不是零,我希望该值替换组中的所有零。

以下是我的数据外观的示例:

|categorical1|categorical2|var_to_be_modified|
|---         |---         |---               |
|A           |x           |0                 |
|A           |x           |0                 |
|A           |x           |15                |
|A           |x           |0                 |
|A           |y           |26                |
|A           |y           |0                 |
|A           |y           |0                 |
|B           |x           |0                 |    
|B           |x           |0                 |
|B           |x           |0                 |
|B           |x           |20                |
|B           |y           |0                 |
|B           |y           |0                 |
|B           |y           |2                 |

这就是我想要的样子:

|categorical1|categorical2|var_to_be_modified|
|---         |---         |---               |
|A           |x           |15                |
|A           |x           |15                |
|A           |x           |15                |
|A           |x           |15                |
|A           |y           |26                |
|A           |y           |26                |
|A           |y           |26                |
|B           |x           |20                |    
|B           |x           |20                |
|B           |x           |20                |
|B           |x           |20                |
|B           |y           |2                 |
|B           |y           |2                 |
|B           |y           |2                 |

我尝试过

df['var_to_be_modified'] = df['var_to_be_modified'].replace(0, np.nan).ffill()

但是由于某些非零值不在每个类别的“开始”位置,因此无法按我的意愿运行。
有什么办法吗?

0 个答案:

没有答案