Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python组合df行?_Python_Pandas_Numpy_Conda_Nan - Fatal编程技术网

如何使用python组合df行?

如何使用python组合df行?,python,pandas,numpy,conda,nan,Python,Pandas,Numpy,Conda,Nan,我正在尝试连接包含字符串的数据帧的行。我想检查该行是否包含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 Na

我正在尝试连接包含字符串的数据帧的行。我想检查该行是否包含
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新手,有人能帮我吗。

的想法是为分组创建助手
系列

因此,首先使用为至少有一个
NaN
s的所有行创建掩码,使用构造函数创建
Series
,将不匹配的值替换为
NaN
s,并使用
limit=1为上述相同组的缺失值回填,以便仅替换上面的一行

最后将所有缺少的值替换为空值,分组并聚合
连接

m = df.isna().any(axis=1)
s = pd.Series(np.arange(len(m)), index=df.index)
g = s.where(m).bfill(limit=1).fillna(s)

df = df.fillna('').groupby(g).agg(''.join).reset_index(drop=True)
print (df)
    0  1  2  3   4
0  dd  t  u  y  eo
1   y  p  p  w   r

非常感谢您的及时帮助。这个很好用。我花了几个小时才弄明白。