Python 将字符串值从表中的前一行添加到下一行

Python 将字符串值从表中的前一行添加到下一行,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有一个dataframe,每隔一段时间将一行中第一个单元格中的文本分隔为两行,并在第一行中将列值填充为None和NaN,然后将实际列值填充到第二行 以下是一个例子: df House_Type Area Shape Blue House 3456 circle Red house 2345 square Small Green NaN None

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

以下是一个例子:

df

   House_Type       Area          Shape

   Blue House       3456          circle
   Red house        2345          square
   Small Green      NaN           None
   House            987           square
在这些情况下,我想将拆分行小绿色的house type的第一个单元格中的字符串添加到拆分行house的第二部分house type的第一个单元格中。下面的例子供参考

最终结果如下所示:

  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 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

如果df.Shape.values[i]为None:@Alam仍返回相同的原始dft,则此距离更近,但房屋类型现在看起来像[蓝色房屋-小绿色,红色房屋…]。我的错误是,我遗漏了一个[i],因此此操作非常完美!
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