2014-09-22 67 views
1

我有一个数据帧df访问列,我想我也可以做创建新列:创建,删除,并在大熊猫数据帧

df.Age = 4 

这并没有工作,因为我只给数据框属性Age并为其指定编号4

此外,当我尝试df.head()时,输出也没有显示Age列。

所以我想如果有删除数据框Age的一种方法,实际上,我怎么在我的数据帧创建一列Age,只装着4的?

+0

参见[这里](它将但工作https://github.com/pydata/pandas/issues/7175),显然你不能通过点符号来指定一个新列,所以你应该像'df ['Age'] = 4'这样做。 – Marius 2014-09-22 06:58:54

+0

你碰巧知道如何删除该项目? – Alex 2014-09-22 07:03:07

+0

'del df.Age'应该这样做,但理想情况下,您只需从一开始就重新运行脚本,而无需尝试分配任务。始终以最佳的数据内容将所有数据转换步骤保存在脚本中,并且每当您开始新的会话IMO时,只需重新创建从原始数据开始的所有步骤。 – Marius 2014-09-22 07:07:25

回答

1

有两种访问DataFrame中的列的方法。 通过:

  1. 点标记(df.column_name
  2. 列表存取(df['column_name']

点标记是仅可用于读取和修改现有列,不能用于创建新列

如果你想创建一个新的列,您必须使用列表访问

df['Age'] = 4将创建一个新的列'Age',其中所有的元素都是4

这样做后,你可以更新此列使用df.Age = 6,但不是之前。

删除现有列由python本地del关键字完成。

del df.Age不是工作的列,因为这是一个属性访问器。如果你有创建的数据框对象上的属性

del df['Age']将删除列'Age'如果它是一个列,而不是一个属性