如何使用2种方法在Python的1列中填充NA

我有一个带有1列的数据框。 -我想在开始和结束时完全消除许多NA值。 -同时,在2个可用值之间有一些NA值,我想用2个闭合可用值的平均值来填充它们。 为了说明,我在此附上图像供您想象。 我想不出任何解决方案。只是想知道是否有人可以帮助我。

感谢您的帮助

如何使用2种方法在Python的1列中填充NA

] 1

deaddao 回答:如何使用2种方法在Python的1列中填充NA

首先,如果每个N / A均为字符串格式,则用np.nan替换。最直接的方法是在给定的列上使用isnan,然后提取真实的索引(例如使用np.arange数组上的结果)。从那里,您可以使用for来迭代索引以检查索引是否是顺序的,或者计算连续元素之间的距离以查找不等于1的元素。

,

尝试一下,我通过使用随机数重现了示例

import pandas as pd
import numpy as np

random_index = np.random.randint(0,100,size=(5,1))
random_range = np.arange(10,15)
df = pd.DataFrame(np.random.randint(0,size=(100,1)),columns=list('A'))
df.loc[10:15,'A'] = "#N/A"
for c in random_index:
    df.loc[c,"A"] = "#N/A"

// replacing start from here

df[df=="#N/A"]= np.nan
index  = list(np.where(df['A'].isna()))[0]
drops = []
for i in index:
    if pd.isnull(df.loc[(i-1),"A"]) is False  and pd.isnull(df.loc[(i+1),"A"]) is False:
        df.loc[i,"A"] =  (df.loc[(i-1),"A"]+df.loc[(i+1),"A"])/2
    else:
        drops.append(i)

df = df.drop(df.index[drops]).reset_index(drop=True)
本文链接:https://www.f2er.com/3084115.html

大家都在问