我从字典对象(数据帧)中调用了两个pandas数据帧系列,并希望将它们绘制在散点图中,但是python将我的数据帧视为整数对象。
我已经检查了从字典中调用的值的类型:pandas.dataframe.series
以下是我要执行的操作的示例:
df1 = pd.DataFrame([[1,2], [3,4]], columns = ['A', 'B'])
df = {'df1': df1}
for i in df.values():
sns.scatterplot(x=i['A'], y = i['B'], ax = 0)
我期望有一个散点图,但收到以下错误消息:
AttributeError: 'int' object has no attribute 'scatter'
答案 0 :(得分:0)
我可以用以下代码重现您提到的问题
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df1 = pd.DataFrame([[1,2], [3,4]], columns = ['A', 'B'])
sns.scatterplot(x=df1['A'], y = df1['B'], ax = 0)
输出:
错误
AttributeError:“ int”对象没有属性“ scatter”
下面的代码很好用
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df1 = pd.DataFrame([[1,2], [3,4]], columns = ['A', 'B'])
sns.scatterplot(x=df1['A'], y = df1['B'])
如果要传递ax作为参数,这不是正确的方法。轴应具有轴对象,而不是整数值。
下面的代码与ax参数一起使用
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df1 = pd.DataFrame([[1,2], [3,4]], columns = ['A', 'B'])
fig, ax = plt.subplots(figsize=(3,3))
sns.scatterplot(x=df1['A'], y = df1['B'],ax=ax)
让我知道它是否不能解决您的问题