【问题标题】:Filling NaN rows with values from a list用列表中的值填充 NaN 行
【发布时间】:2017-08-27 23:43:28
【问题描述】:

我有一个 5 列的数据框。

其中三列通常有缺失值(只会同时出现)

现在,我还想为每列的 na 值填写三个值“列表”。

a=[1.5, 2.5, 3.5]

b=[1,2,3]

c=[1,2,3]

.

请注意,每个列表仅包含 3 个值(因为每列有三行缺失值)。而主表有 14 行。

我的第一个方法是:

df.where(df.notnull(), pd.Series(a), axis=0)

但这给我返回了一个有两个问题的主表

1) 仅用列表 A 值填充所有三列

2)它匹配主表和列表A的行。意味着主df用列表A的第三个值填充第一个nan值(第3行)。

【问题讨论】:

    标签: python pandas dataframe nan


    【解决方案1】:

    您可以使用df.iloc 分配给子切片:

    values = np.array([a, b, c])
    idx = df.iloc[:, :3].isnull().all(0).index
    df.iloc[idx, :3] = values
    

    【讨论】:

      【解决方案2】:

      您可以使用以下行 df.where(df.notnull(), pd.Series(a(0),b(0),c(0)),axis=0)

      【讨论】:

        猜你喜欢
        • 2017-04-28
        • 2021-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-14
        相关资源
        最近更新 更多