我想在删除列后将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)
答案 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时(这是默认值,因此不是必需的),执行操作并返回对象的副本