首页 > 解决方案 > 如何在另一列的基础上填充该列第一行的NA值

问题描述

我有一个 csv 文件,在其中一列中,我需要根据上面同一列中可用的数据填充 NA 值。例如,如果让我们说列数据是这样的,chrome,NA,NA,Explorer,NA我希望它是这样的chrome,chrome,chrome,Explorer,Explorer,我是能够实现这一点,但现在我有另一个问题,可以说列NA,NA,chrome,Explorer,NA数据是这样NA,NA,chrome,Explorer,Explorer

为了根据来自同一列的数据填充缺失值,我使用了此代码-

用以前的值填充缺失值

data["Application Name"].fillna(method ='pad', inplace = True)
data.iloc[:,4].fillna(method ='pad', inplace = True)
data.head()

这是输入 csv 数据-

Sequence Number Action Name Title   Recorder Type   Application Name
1   1   ANT Logger      
2   5       Chrome Recorder 
3   5       Chrome Recorder Chrome
4   5       Chrome Recorder Chrome
5   5       Chrome Recorder Chrome
6   6   xyz Chrome Recorder Chrome
7   7       Chrome Recorder Chrome

在上面的示例中,第一行中的应用程序名称丢失,甚至我们不能使用 fillna,因为它是 csv 的第一行,所以我想使用标题
数据在应用程序名称列中使用,这基本上意味着我想要这样的输出-

Action Name Title   Recorder Type   Application Name
1   ANT Logger      ANT Logger
5       Chrome Recorder ANT Logger
5       Chrome Recorder Chrome
5       Chrome Recorder Chrome
5       Chrome Recorder Chrome
6   xyz Chrome Recorder Chrome
7       Chrome Recorder Chrome

标签: pythonpandascsvna

解决方案


您可以使用行来使用向后和向前填充:

df = df.ffill(axis ='rows').bfill(axis ='rows')   

推荐阅读