【发布时间】:2019-05-29 17:59:20
【问题描述】:
我创建了一个随机数据帧来模拟来自 seaborn 的数据集tips:
import numpy as np
import pandas as pd
time = ['day','night']
sex = ['female','male']
smoker = ['yes','no']
for t in range(0,len(time)):
for s in range(0,len(sex)):
for sm in range(0,len(smoker)):
randomarray = np.random.rand(10)*10
if t == 0 and s == 0 and sm == 0:
df = pd.DataFrame(index=np.arange(0,len(randomarray)),columns=["total_bill","time","sex","smoker"])
L = 0
for i in range(0,len(randomarray)):
df.loc[i] = [randomarray[i], time[t], sex[s], smoker[sm]]
L = L + 1
else:
for i in range(0,len(randomarray)):
df.loc[i+L] = [randomarray[i], time[t], sex[s], smoker[sm]]
L = L + 1
我的 dataFrame df 的每一列都有与 seaborn 数据集中的 dataFrame tips 相同类型的类:
tips = sns.load_dataset("tips")
type(tips["total_bill"][0])
type(tips["time"][0])
numpy.float64
str
其他列以此类推。和我的dataFrame一样:
type(df["total_bill"][0])
type(tips["time"][0])
numpy.float64
str
但是,当我尝试在documentation 之后使用 seaborn 的 violinplot 或 factorplot 时:
g = sns.factorplot(x="sex", y="total_bill", hue="smoker", col="time", data=df, kind="violin", split=True, size=4, aspect=.7);
如果我使用 dataFrame 提示,我没有问题,但是当我使用我的 dataFrame 时,我得到:
AttributeError: 'float' 对象没有属性 'shape'
我想这是我将数组传递到 dataFrame 的方式的问题,但我找不到问题所在,因为我在互联网上发现的每个问题都具有相同的 AttributeError 说这是因为它不是同一类型类,如上所示,我的 dataFrame 与 seaborn 文档中的类具有相同类型。
有什么建议吗?
【问题讨论】:
标签: python seaborn attributeerror