Python 将字符串值从表中的前一行添加到下一行
我有一个dataframe,每隔一段时间将一行中第一个单元格中的文本分隔为两行,并在第一行中将列值填充为None和NaN,然后将实际列值填充到第二行 以下是一个例子: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
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