如何从DataFrame图中排除几列?

时间:2012-10-21 23:01:05

标签: python pandas

我有一个包含大约25列的DataFrame,其中有几列包含不适合绘图的数据。 DataFrame.hist()会抛出错误。如何指定应从绘图中排除这些列?

6 个答案:

答案 0 :(得分:14)

注意,对@Chang She的响应进行了修改,截至pandas 0.16,-运算符计划弃用。鼓励使用difference()方法。

exclude = ['bad col1', 'bad col2']
df.loc[:, df.columns.difference(exclude)].hist() 

deprecation上的更新:

df - df['A']
     

现已弃用,将在以后的版本中删除。该   复制此行为的首选方法是

df.sub(df['A'], axis=0)

答案 1 :(得分:8)

我们可以让这更容易(我创建了一个github issue),但是现在您可以选择要绘制的列:

df.ix[:, df.columns - to_exclude].hist()

答案 2 :(得分:7)

我想你可以:

df.drop(['bad col1', 'bad col2', 'bad col3', ...], axis=1).hist()

答案 3 :(得分:6)

我通常会做以下事情:

columns = [column for column in df.columns if df[column].dtype == 'float64']
df = df[columns]

答案 4 :(得分:5)

在官方docs之后,您可以使用loc

df.loc[:,['A','B']]

例如,您只能获得“A' A'和' B'。 通过这种方式,您可以选择要绘制的列。

答案 5 :(得分:0)

如何

df_new = df[df.columns -[cols_to_exclude]]
df_new.plot()