如何选择并修改某一列中每隔一行的值?
解决pandas隔行选中列赋值的索引错误
你写的df[::2, 'my_column'] = 0之所以报错,是因为pandas的DataFrame直接用方括号[]不支持同时传入行切片和列名的二维索引组合,这种写法会触发InvalidIndexError。
给你几种可行的解决方法:
用iloc(位置索引):
iloc支持行和列的位置切片/索引,先把列名转成对应的位置索引,再结合行切片:df.iloc[::2, df.columns.get_loc('my_column')] = 0用loc(标签索引):
如果你的行索引是默认的整数序列,先提取隔行的索引标签,再指定列名赋值:df.loc[df.index[::2], 'my_column'] = 0先选列再切片行(注意警告):
先选中目标列,再对行进行隔行切片赋值,不过这种链式写法可能触发SettingWithCopyWarning,如果确定操作的是原DataFrame可以用:df['my_column'][::2] = 0
你的报错信息:
pandas.errors.InvalidIndexError: (slice(None, None, 2), 'my_column')
内容的提问来源于stack exchange,提问作者JDS
相关产品推荐
相关产品推荐

