我正在尝试将包含字符串的数据框的行连接起来。我想检查该行是否包含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的新手,有人可以帮助我吗?
想法是用于创建分组的创建助手Series
。
因此,首先为所有至少具有一个NaN
的行创建掩码,然后用DataFrame.isna
将DataFrame.isna
创建为DataFrame.any
,将不匹配的值替换为DataFrame.any
到Series
上面相同组的值,用NaN
仅替换上面的一行。
将所有丢失的值最后替换为空值,分组并聚合Series.where
:
Series.where