从索引绘制Dataframe时的值错误

时间:2018-03-16 10:15:06

标签: python pandas dataframe

我有一个具有以下结构的数据框:

A          B
Location1  1
Location2  2
1          3
2          4

在上面的示例中,列A是索引。我正在尝试使用索引和列B生成散点图。这个数据帧是通过重新采样和平均另一个数据帧来制作的,如下所示:

df = df.groupby("A").mean()

现在显然这会将索引设置为等于A列,我可以使用以下内容对其进行绘制。 Use index in pandas to plot data

df.reset_index().plot(x = "A",y = "B",kind="scatter", figsize=(10,10))

现在,当我运行它时,它返回以下内容:

ValueError: scatter requires x column to be numeric

由于索引列是一列字符串,我可以绘制一个散点图,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可能只想选择整数行:

import pandas as pd

d = {'A': ["Location1", "Location2", 1, 2], 'B': [1, 2, 3, 4]}
df = pd.DataFrame(data=d)
df_numeric = df[pd.to_numeric(df.A, errors='coerce').notnull()]

print(df_numeric)

   A  B
2  1  3
3  2  4

由A:

组成
df_numeric_grouped_by_A = df_numeric.groupby("A").mean()

print(df_numeric_grouped_by_A)

   B
A   
1  3
2  4

答案 1 :(得分:0)

您可能需要转发DataFrame,以便将索引(A列)作为列名,然后计算列的平均值并绘制它们。