Python 如何动态更新pandas中列的左侧值?

Python 如何动态更新pandas中列的左侧值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框架,其中包含一系列包含布尔值的列,一年中每个月一列。以下是df的一个片段: 我正在尝试用最后一个有效值更新2019.04_标志、2019.05_标志等列。我知道我可以使用df[2019.04_flag].fillna(2019.03_flag),但我不想写11行fillna。是否有一种动态更新值的方法?我尝试在这里使用fillna方法和ffill参数,但正如您所见,它不会在行中传播。 我将研究pandas fillna方法,文档是。它有不同的填充NaN的方法--我认为“ffill

我有一个数据框架,其中包含一系列包含布尔值的列,一年中每个月一列。以下是df的一个片段:

我正在尝试用最后一个有效值更新2019.04_标志、2019.05_标志等列。我知道我可以使用df[2019.04_flag].fillna(2019.03_flag),但我不想写11行fillna。是否有一种动态更新值的方法?我尝试在这里使用fillna方法和ffill参数,但正如您所见,它不会在行中传播。

我将研究pandas fillna方法,文档是。它有不同的填充NaN的方法--我认为“ffill”适合你的需要。它用最后一个有效条目填充NaN。请尝试以下操作:

df = df.fillna(method = "ffill", axis = 1)

设置
axis=1
将跨列执行插补,我相信这是您想要的轴(跨列的一行)。

所以您想用该行的最后一个有效值填写NaN?正确,我想对每一列都这样做。我的列是2019.01_flag,2019.02_flag…2019.12。我需要用我尝试使用fillna的最后一个有效值填充这些列中的Nan,但这会将值沿列向下传播,而不是跨行传播。我做了以下操作(ls是一个列表,其中包含我试图更新的列名,顺便说一句):df[ls]=df[ls].fillna(method='ffill',axis=0),我的df仍然在columnsHm中返回Nan值。可能发生这种情况的两种情况是(1.)如果ls list只有一列,则行长度为1,无法与任何其他值进行比较,(2.)整行为NaN。我认为(2)可能是一个问题,如果你想编辑问题并添加你尝试过的解决方案&输出会有帮助!对不起,第一次在这里问问题!我用我使用的代码片段及其输出进行了更新。@user1848447使用
axis=1查看我编辑的答案