大熊猫的专栏重新出现

时间:2017-01-13 23:14:42

标签: python python-3.x pandas

我想在删除列后将pandas数据帧转换为重新排列。原始数据有33列,在删除列'a'后,我按预期留下了32列。但是,在数据框上调用to_records()之后,原始列已重新插入空白值。有办法防止这种情况吗?

dat = pd.read_csv("testing.csv")
dat = dat.astype("float32")
dat.drop(['a'], axis=1, inplace=True)

temp = dat.to_records()

>>> dat.shape
(500,32)
>>> temp.shape
(500,33)

2 个答案:

答案 0 :(得分:2)

您正在按预期删除列,但您必须将新数据框分配给原始数据框,以便将其覆盖。 所以,

dat=dat.drop(['a'], axis=1, inplace=true)

就是这样

答案 1 :(得分:0)

只需dat.drop(['a'], axis=1, inplace=true)代替dat=dat.drop(['a'], axis=1, inplace=true)

当inplace = True传递时,数据就位重命名(不返回任何内容),因此您在dat中获得了none类型的对象,

当传递了inplace = False时(这是默认值,因此不是必需的),执行操作并返回对象的副本

also see this