【问题标题】:Error when try adding a column to a dataframe尝试将列添加到数据框时出错
【发布时间】:2021-08-03 07:32:39
【问题描述】:
我首先尝试从原始数据框中切出一些列,然后将附加列“INDEX”添加到最后一列。
df = df.iloc[:, np.r_[10:17]] #col 0~6
df['INDEX'] = df.index #col 7
我有第二行的错误消息说'正在尝试在 DataFrame 的切片副本上设置一个值。尝试改用 .loc[row_indexer,col_indexer] = value'
为什么我会看到这种情况,我应该如何解决?
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
我愿意
df.loc[:,'INDEX'] = df.index
【解决方案2】:
默认情况下,Python 会进行数据帧的浅拷贝。因此,无论对数据帧执行什么操作,它实际上都会在原始数据帧上执行。而消息正是表明这一点。
以下任何一个都会让 Python 解释器开心?:
df = df.iloc[:, np.r_[10:17]].copy()
或
df.loc[:, ['INDEX']] = df.index