36

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

4

6 回答 6

24

请注意,对@Chang She 的回复进行了修改,从 pandas 0.16 开始,该-运算符计划弃用。difference()鼓励使用该方法。

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

弃用更新:

df - df['A']

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

df.sub(df['A'], axis=0)
于 2015-08-22T05:41:13.047 回答
10

我想你可以:

df.drop(['bad col1', 'bad col2', 'bad col3', ...], axis=1).hist()
于 2015-01-20T03:24:33.310 回答
8

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

df.ix[:, df.columns - to_exclude].hist()
于 2012-10-22T00:15:38.187 回答
6

我通常会做以下事情:

columns = [column for column in df.columns if df[column].dtype == 'float64']
df = df[columns]
于 2013-02-19T22:39:39.510 回答
4

按照官方文档,您可以使用 loc

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

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

于 2015-02-25T15:42:32.383 回答
0

刚刚怎么样

df_new = df[df.columns -[cols_to_exclude]]
df_new.plot()
于 2015-11-18T15:48:55.867 回答