Python 我想使用pandas绘制数据帧的第一行

Python 我想使用pandas绘制数据帧的第一行,python,pandas,Python,Pandas,我想在我的数据框中为每个案例绘制一个图。我的x轴是10到500之间的范围,y轴是每种情况下每列的行值(prob-10、prob-20等等,直到prob-500) 我真正想要的是有一个情节,例如案例1 x轴=10,20,30。。。。。 y轴=0,35,0,24,0,44 我的数据框看起来像这样 案例 年 嗯 prob-10 prob-20 prob-30 案例1 2018 200 0,35 0,24 0,44 案例2 2017 299 0,33 0,25 0,33 案例3 2019 200 0,4

我想在我的数据框中为每个案例绘制一个图。我的x轴是10到500之间的范围,y轴是每种情况下每列的行值(prob-10、prob-20等等,直到prob-500)


我真正想要的是有一个情节,例如案例1 x轴=10,20,30。。。。。 y轴=0,35,0,24,0,44

我的数据框看起来像这样

案例 年 嗯 prob-10 prob-20 prob-30 案例1 2018 200 0,35 0,24 0,44 案例2 2017 299 0,33 0,25 0,33 案例3 2019 200 0,45 0,22 0,33
我不确定“绘制第一行”是什么意思,但如果您只想将第一行保存为变量,可以尝试将数据帧转换为这样的字典

row1=dict(df)[0][1]
打印(第1行)

如果您指的是case特定值的行,您可以尝试以下操作:

import pandas as pd
import matplotlib.pyplot as plt
import logging

df = pd.DataFrame({"cases": ["case1", "case_2", "case_3"],
               "year": ["2017", "2018", "2019"],
               "HH": [200, 299, 200],
               "prob-10": [0.35, 0.33, 0.45],
               "prob-20": [0.24, 0.25, 0.22],
               "prob-30": [0.44, 0.33, 0.33]})

def plot_row_as_bars(df: pd.DataFrame,
                 case: str="case1",
                 exclude_list: list=["cases", "year", "HH"]):
    """ Plot row of a Pandas dataframe as bar chart
    """
    temp = df.loc[df["cases"] == case]
    # Check temporary dataframe
    if len(temp) < 0:
        logging.warning(f"Case: {case} is not avialable.")
        return

    # Exclude columns
    temp = temp.drop(exclude_list, axis = 1)

    x = temp.columns
    y = temp.iloc[0].to_list()

    plt.bar(x, y)
    plt.grid()
    plt.show()

plot_row_as_bars(df)
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
导入日志记录
df=pd.DataFrame({“cases”:[“case1”,“case2”,“case3”],
“年度”:[“2017年”、“2018年”、“2019年”],
“HH”:[200299200],
“prob-10”:[0.35,0.33,0.45],
“prob-20”:[0.24,0.25,0.22],
“prob-30”:[0.44,0.33,0.33]})
def绘图行作为条形图(df:pd.DataFrame,
case:str=“case1”,
排除列表:列表=[“案例”、“年份”、“HH”]):
“”“将数据框的行打印为条形图
"""
temp=df.loc[df[“案例”]==案例]
#检查临时数据帧
如果透镜(温度)<0:
警告(f“Case:{Case}不可访问。”)
返回
#排除列
温度=温度下降(排除列表,轴=1)
x=临时列
y=temp.iloc[0]。to_list()
plt.bar(x,y)
plt.grid()
plt.show()
绘图行作为条形图(df)

将索引设置为
案例
,这将简化以后的
df.plot
功能,[
筛选
]仅以
prob-
开头的列。将原始数据框中使用的逗号转换为点,以便数据框可以用
astype(float)
解释为
float
。然后,转置数据帧以获得y轴,其中包含每种情况下每列的行值,使用
df.plot(kind='bar')
绘制图表

将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
df=pd.read_csv('sample.csv',sep='\s+'))
df=df.set_索引('cases')
#仅获取prob-*列
df=df.filter(regex='prob-*')
#用点替换原来的逗号
df=df.apply(lambda x:x.str.replace(',','))
df=df.astype(浮动)
df=df.T
df.plot(kind='bar')
plt.xticks(旋转=45)
plt.show()

我真正想要的是有一个绘图,例如,案例1 x轴=10、20、30。。。。。y轴=0,35,0,24,0,44…..对于散点图,只需使用plt.scatter(x,y)而不是plt.bar(x,y)这看起来很棒,但我可以将其作为散点图,并且对于每种情况,不在同一个图中