我有一个具有以下结构的数据框:
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
由于索引列是一列字符串,我可以绘制一个散点图,我该如何解决这个问题?
答案 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列)作为列名,然后计算列的平均值并绘制它们。