在Pandas中将上一行中的字符串值添加到下一行

时间:2017-12-05 19:38:45

标签: python pandas numpy dataframe

我有一个数据框,每隔一段时间将文本从一行中的第一个单元格分成两行,并在第一行中将列值填充为None和NaN,然后​​将实际列值填入第二行

以下是一个例子:

df

   House_Type       Area          Shape

   Blue House       3456          circle
   Red house        2345          square
   Small Green      NaN           None
   House            987           square

在这些情况下,我想要将拆分行(小绿色)的房屋类型的第一个单元格中的字符串添加到拆分行(House)的第二部分中的房屋类型的第一个单元格中。以下示例供参考。

最终结果如下:

  df

   House_Type             Area        Shape

   Blue House             3456          circle
   Red house              2345          square
   Small Green            NaN           None
   Small Green House      987           square

我写了一个函数来执行此操作,但它看起来就像原始数据帧一样。我不确定我在这里缺少什么。

代码:

def row_clean(df):
    for i in range(0, len(df)):
        if df.Shape.values[i] == None:
            df.House_Type.values[i + 1] = df.House_Type.values[i] + ' ' + df.House_Type.values[i + 1]

    return df

1 个答案:

答案 0 :(得分:1)

试试这个

def row_clean(df):
for i in range(0, len(df)):
    if pd.isnull(df.Shape.values[i]):
        df.House_Type.values[i + 1] = df.House_Type.values[i] + ' ' + df.House_Type.values[i + 1]

return df
相关问题