如何使用python合并df行?

问题描述 投票:2回答:1

我正在尝试将包含字符串的数据框的行连接起来。我想检查该行是否包含NaN,如果是,则从该行中删除NaN,然后将其余部分与该行上方的那个连接起来。最后删除包含NaN的行。

这是我的示例数据:

df=[["d","t","u","y","e"],["d",np.nan,np.nan,np.nan,"o"],["y","p","p","w","r"]]
df=pd.DataFrame(df)
print(df)
0    1    2    3  4
d   t    u    y   e
d  NaN  NaN  NaN  o
y    p    p    w  r

我希望输出看起来像下面的一样。

   0    1    2    3   4
   dd   t    u    y  eo   
   y    p    p    w   r

这是我的审判,但没有运气。

for i in range(len(df)):
for j in range(len(df.iloc[1,])):
    if(pd.isnull(df.iloc[i,j])==True):
        df.concat(df.iloc[i,j],df.iloc[i-1,j])
        df.dropna(df.iloc[:,i])

我是Python的新手,有人可以帮助我吗?

python pandas numpy conda nan
1个回答
1
投票

想法是用于创建分组的创建助手Series

因此,首先为所有至少具有一个NaN的行创建掩码,然后用DataFrame.isnaDataFrame.isna创建为DataFrame.any,将不匹配的值替换为DataFrame.anySeries上面相同组的值,用NaN仅替换上面的一行。

将所有丢失的值最后替换为空值,分组并聚合Series.where

Series.where
© www.soinside.com 2019 - 2024. All rights reserved.