gpt4 book ai didi

python - Pandas 将数据框绘制为分散提示未知项目

转载 作者:行者123 更新时间:2023-12-01 04:40:49 26 4
gpt4 key购买 nike

对于一系列类型的文本标签,我有两个值 Tm1 和 Tm2 的数千个数据点:

    Tm1 Tm2
ID
A01 51 NaN
A03 51 NaN
A05 47 52
A07 47 52
A09 49 NaN

我设法使用 csv 中的值创建一个 pandas DataFrame。我现在想在散点图中将 Tm1 和 Tm2 绘制为 y 值,将文本 ID 绘制为 x 值,并在 pandas/matplotlib 中使用不同颜色的点。

通过这样的测试用例,我可以获得线图

from pandas import *
df2= DataFrame([52,54,56],index=["A01","A02","A03"],columns=["Tm1"])
df2["Tm2"] = [None,42,None]


Tm1 Tm2
A01 52 NaN
A02 54 42
A03 56 NaN

Plot obtained from DataFrame

我不想用线条连接各个值,而只是将 Tm1 和 Tm2 值作为不同颜色的散点。

当我尝试使用绘图时

df2.reset_index().plot(kind="scatter",x='index',y=["Tm1"])

我收到错误:

KeyError: u'no item named index'

我知道这是一个非常基本的绘图命令,但很抱歉我不知道如何在 pandas/matplotlib 中实现这一点。 scatter 命令确实需要 x 和 y 值,但我在理解如何执行此操作时遗漏了一些关键的 pandas 概念。

最佳答案

我认为这里的问题是您正在尝试针对非数字系列绘制散点图。这将会失败 - 尽管您收到的错误消息非常具有误导性,可以被视为错误。

但是,您可以显式设置 xticks 为每个类别使用一个并使用 second argument of xticks设置 xtick 标签。像这样:

import matplotlib.pyplot as plt

df1 = df2.reset_index() #df1 will have a numeric index, and a
#column named 'index' containing the index labels from df2
plt.scatter(df1.index,df1['Tm1'],c='b',label='Tm1')
plt.scatter(df1.index,df1['Tm2'],c='r',label='Tm2')
plt.legend(loc=4) # Optional - show labelled legend, loc=4 puts it at bottom right
plt.xticks(df1.index,df1['index']) # explicitly set one tick per category and label them
# according to the labels in column df1['index']
plt.show()

我刚刚用 1.4.3 测试过它,运行正常

<小时/>

对于您提供的示例数据,得出:

enter image description here

关于python - Pandas 将数据框绘制为分散提示未知项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30749963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com