我有一个数据框,我需要绘制一个列的直方图,但IO不断出错。这是我的代码:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
data = df[['col']]
data.info()>>>
RangeIndex: 183404 entries, 0 to 183403
Data columns (total 1 columns):
col 183404 non-null int64
dtypes: int64(1)
bins = np.arange(-100, 100, 5)
plt.hist(data , bins = bins)
plt.show()
我一直收到错误TypeError:无法使用灵活类型执行reduce,我不知道为什么。
谢谢。
答案 0 :(得分:1)
plt.hist
不需要DataFrame。它需要“(n,)数组或(n,)数组序列”。
取而代之的是:
plt.hist(data.values, bins=bins)
另外,您可以这样做,因为pd.Series
与plt.hist
合作:
plt.hist(df['col'], bins=bins)
答案 1 :(得分:0)
还有一个DataFrame built in function来执行此操作:
df.hist('col', bins = 5)
Bins可能与您期望的工作方式不同,请参阅文档。它需要一个int作为bin的数量(默认为10)