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

问题描述 投票:0回答:2

假设我们有一个如下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上应用Col3后,使用jjs Col4建议的解决方案替换列Col5in this post heregroupby中的Col1值。

我的方式是

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

但手动提及列是很多工作。

所以,我想知道如何通过切片选择qazxsw poi,qazxsw poi和qazxsw poi列?

谢谢

python python-3.x pandas dataframe group-by
2个回答
1
投票

Tbh,我不确定我理解你的问题。

据我所知,你可以直截了当地做

Col3

因为Col4Col5不会改变你的列没有df.groupby('Col1').ffill().bfill() s。

现在,如果您事先知道哪些列需要回填/填充并希望减少详细程度,您可以将它们保存在ffill()变量中

bfill()

2
投票

此解决方案以您希望的方式填充所有NaN列:

NaN
© www.soinside.com 2019 - 2024. All rights reserved.