如果sam中的另一列为空,则将列值与前一行合并

2024-04-20 09:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的数据框

测向:

col1      col2       col3
 1        cat          4
nan       dog         nan 
 3        tiger         3
 2        lion          9
 nan      frog         nan
 nan     elephant      nan

我想从这个数据帧中创建一个数据帧,这个数据帧id col1中有nan个值,col2的值将被添加到前一行的值中

例如,所需的输出数据帧将是:

col1     col2             col3
 1      catdog             4
 3       tiger             3
 2     lionfrogelephant    9

如何使用熊猫来实现这一点


Tags: 数据idnancatcol2col3col1tiger
1条回答
网友
1楼 · 发布于 2024-04-20 09:35:22

使用正向填充缺失值和聚合join

cols = ['col1','col3']
df[cols] = df[cols].ffill()
df = df.groupby(cols)['col2'].apply(''.join).reset_index()
print (df)
   col1  col3              col2
0   1.0   4.0            catdog
1   2.0   9.0  lionfrogelephant
2   3.0   3.0             tiger

或如有必要,向前填充所有列中缺少的值:

df = df.ffill().groupby(['col1','col3'])['col2'].apply(''.join).reset_index()
print (df)
   col1  col3              col2
0   1.0   4.0            catdog
1   2.0   9.0  lionfrogelephant
2   3.0   3.0             tiger

相关问题 更多 >