如何在另一列的基础上填充第一列的NA值

时间:2019-08-27 09:26:35

标签: python pandas csv na

我有一个csv文件,在其中一列中,我需要根据同一列中上方可用的数据填充NA值。例如,假设是否让列数据像这样chrome,NA,NA,Explorer,NA我希望它是chrome,chrome,chrome,Explorer,Explorer并且我能够实现,但是现在我有另一个问题,可以说列数据是这样的NA,NA,chrome,Explorer,NA我得到的输出为NA,NA,chrome,Explorer,Explorer(这里是NA行输出部分,我想用同一行中的另一列数据替换)

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

  

用先前的值填充缺失的值

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的第一行,所以我想使用标题
Apllication名称列中使用的数据,这基本上意味着我想要这样的输出-

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

1 个答案:

答案 0 :(得分:3)

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

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