难以从Pandas数据框中删除多列

时间:2019-06-15 07:09:30

标签: python pandas

我有一个新创建的Pandas数据框,由于某种原因,我无法从中删除列。

RangeIndex:2617个条目,0到2616 列:111个条目,可访问分区 dtypes:object(111) 内存使用量:2.2+ MB 没有

print list(df)

['access','age','attic','basement_type','bathrooms','bedrooms_total','buyer','buyer_city','buyer_country','buyer_postal_code','colisting_agent_id','construction ”,“ csa_number”,“ date_expired_hidden”,“ date_listed”,“ date_sold”,“ date_unconditional”,“ distance_to_schools”,“ distance_to_transportation”,“ district”,“ ensuites”,“ exterior_features”,“ exterior_finish”,“ fireplace_type” “壁炉”,“地板”,“燃料”,“加热”,“ id”,“ interior_features”,“ internet_remarks”]

df = df.drop(['buyer', 'buyer_city', 'buyer_country', 'colisting_agent_id'], axis=1, inplace=True)


print list(df)```



TypeErrorTraceback (most recent call last)
<ipython-input-63-1db0e7488634> in <module>()
      6 
      7 
----> 8 print list(df)

TypeError: 'NoneType' object is not iterable

2 个答案:

答案 0 :(得分:1)

您应该这样做:

df = df.drop(['buyer', 'buyer_city', 'buyer_country'], axis=1)

或者:

df.drop(['buyer', 'buyer_city', 'buyer_country'], axis=1, inplace=True)

答案 1 :(得分:1)

inplace=True参数将放在源(即数据帧本身)处,并返回None

因此,当您使用inplace=True时,请勿将其分配回df

这里的错误是因为df变量已分配给None,并且在list上调用None构造函数会引发错误。

>>> df.drop(list_of_cols_to_drop, axis=1, inplace=True)