Python:如何在groupby之后通过切片来替换NaN值来选择某些列?

容克拉特

假设我们有一个df如下

df = pd.DataFrame({ 'Col1' : [1, 1, 1, 2, 2, 2, 2],
                   'Col2' : [5, 6, 8, 3, 7, 8, 5],
                  'Col3' : [2, None, None, 3, None, None, 4],
                  'Col4' : [3, None,5, None, 8, None, 66],
                  'Col5': [None, 8, 6, None, 9, 6,None],
                  'Col6' : [3,5,2,5,2,7,9]})

我想替换None列中Col3Col4在应用于第一列之后使用本文中Col5jjs建议的解决方案groupbyCol1

我做的方法是

df = df.groupby('Col1')['Col3','Col4','Col5'].ffill().bfill()

但是手动提到这些列需要做很多工作。

所以,我想知道我可以选择列Col3Col4Col5通过分层?

谢谢

拉斐尔克

Tbh,我不确定我是否理解您的问题。

据我所知,您可以直接做

df.groupby('Col1').ffill().bfill()

因为ffill()并且bfill()只会用no更改您的列NaN

现在,如果您事先知道需要回填/填充哪些列并希望减少冗长,则可以将它们保存在cols变量中

cols = ['Col3','Col4','Col5']
df[cols] = df.groupby('Col1')[cols].ffill().bfill()

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过切片索引和条件行来设置值

如何在 Python 中使用切片来选择每个其他人

通过切片和选择对 Pandas 进行索引

如何通过按列中的值切片来创建多个数据框(如列表)?

如何通过切片分配扩展此列表?

通过切片和for循环修改Python列表?

如何通过传递Python中函数返回的列表或元组来切片列表?

如何通过基于名称而不是索引选择一系列列和行来对数据框进行切片?

如何通过切割指定值来搜索重复项

通过给出两个值来获取切片数据帧

通过切片行名将2列数据帧转换为矩阵-R

通过传递其指针来更改切片

熊猫通过切片计算CAGR

Gonum绘图通过切片循环

jQuery Slide Down通过切片显示更多

通过切片器进行列引用

PHP通过切片创建新数组

如何通过切片符号a [::-1]解释序列的逆向

通过附加到golang中的现有切片来创建新切片

如何通过在熊猫中切片来拆分列字符串?

您如何通过一个步骤来获取Numpy切片的索引?

通过切换其他选择标签来隐藏和显示选择标签

如何在python的orderedDict中切片值元素?

如何通过从一列中选择NaN值来创建数据框的子集?

如何在Python Pandas DataFrame中切片列值

执行:通过切片切片(2D切片)访问阵列时的意外性能

为什么可以通过赋值来更改切片,而不能通过for循环来更改?

如何结合布尔掩码和切片对象来切片数据帧?

计算具有公共 ID 而非列或通过切片的多行中的值的平均值时出现问题