如何替换特定列中的行的值

问题描述 投票:1回答:3

所以我有点卡在这里,我的数据是这样的

df = pd.DataFrame({'X': [1, 2, 3, 4, 5, 4, 3, 2, 1],
                   'Y': [6, 7, 8, 9, 10, 9, 8, 7, 6],
                   'Z': [11, 12, 13, 14, 15, 14, 13, 12, 11]})

喜欢编写代码以将'Z'列的第6至9行的值设置为NaN。

最好的我来做的是:

df.replace({'Z': { 6: np.NaN, 7: np.NaN }})

但是所有要做的就是替换在Y列中设置的新值。

我对如何更改一列中某些行的值感到困惑。

python
3个回答
0
投票

您可以为数据框使用loc索引器。我使用了第6列到第8列,因为df没有第9列:

df.loc[range(6, 9), 'Z'] = pd.NA

0
投票

您可以使用:

df.Z[6:9] = np.NaN

0
投票

我认为您应该为此使用.iloc

首先,索引是从零开始的,所以没有第9行。

要将“ Z”列上第5行到第8行的值更改为pd.NA,您可以执行以下操作:

df.iloc[6:9,2:] = pd.NA

我假设熊猫> 1.0引入了NA值。

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