如果同一行的另一列中没有null,则将列值与上一行连接

卡洛尔

我有一个这样的数据框,

df:

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

如何使用熊猫做到这一点?

耶斯列尔

使用向前填充缺失值并进行汇总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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL:如果满足条件,则将值从列复制到同一列中的另一行

如果某列不包含同一行中另一列的值,则将新列pandas中另一列的值添加

如果另一列具有相同的值,则将列中每一行的数据插入表中

如果下一行中另一列的值为空,则连接行

如果同一行的另一列等于某值,如何计算一列中的值?

根据Pyspark中另一列的值,有条件地从同一列的另一行值替换一行中的值?

列中的条件值以更改另一列的同一行中的值

搜索列,如果值不是全数字,则将值剪切并粘贴到同一行的另一列python pandas

R或Mysql:如果同一数据框的另一行中不存在该列的值,则将其更改为null

熊猫:如果值存在于同一行的另一列中,则将它们保留在一组列中,否则将其设置为NaN

如果同一列中的兩個值匹配,則從另一列的同一行返回值

如何创建基于同一行中另一列的值命名的新列?

根据同一行中另一列的值填充缺失值

在同一行的另一列中为您命名的值查找相应的值

如何使用一列查找行并在另一列中返回同一行的值

根据另一列中的另一行更改一行的值

根据上一行的值选择特定的行(在同一列中)

如果同一行中另一列中的值匹配,如何比较一列的两个值

基于Power Bi中同一列中的上一行和另一列中的上一行进行计算

Pyspark:将一列中的值与另一列中同一行中的列表进行匹配

根据另一列不为 NULL,将数据从一行复制到同一列中的另一行

删除重复项,其中同一行中另一列的值= 0

根据上一行同一列中的值计算值

如果值在一个间隔之间,请在另一列的同一行上选择该值

如何找到其他列(column2)的行值,如果我的行值在另一行的同一列(column1)中

如何检查一列的值是否在另一行的另一列中

如果一列值相等而另一列不相等,则忽略 SQL 中的一行

如何为另一列中的每一行重复所有列值

如果第一列与另一个工作表上的值匹配,如何返回一行中的所有单元格