我有一个包含小数的数据帧df。 当尝试使用df.plot()绘制此数据帧时,它会返回错误。我首先需要.applymap()这个浮动。
这是为什么?十进制是浮点数以外的特殊类型吗?
from decimal import Decimal
import pandas as pd
%matplotlib inline
l=[]
for i in range(0,10):
l.append(Decimal(i).quantize(Decimal('0.01')))
df = pd.DataFrame(l)
print df
df.plot() #does not work
df.applymap(lambda x:float(x)).plot() #does work
答案 0 :(得分:1)
from decimal import Decimal
import pandas as pd
import matplotlib.pyplot as plt
l=[]
for i in range(0,10):
l.append(Decimal(i).quantize(Decimal('0.01')))
df = pd.DataFrame(l)
df = df.astype('float') # you can simply do this
df.plot()
plt.show()
您尝试绘制的原始数据是object
类型而不是数字。您可以通过执行df.dtypes
甚至更好:df = pd.DataFrame(l, dtype='float')