【问题标题】:Pandas dataframe plot line graph熊猫数据框绘制折线图
【发布时间】:2018-03-19 09:18:27
【问题描述】:

我有以下数据框

| name | number | value | 
|------|--------|-------| 
| a    | 1      | 13    | 
| a    | 2      | 18    | 
| a    | 3      | 54    | 
| b    | 1      | 1     | 
| c    | 1      | 135   | 
| c    | 2      | 153   | 
| c    | 3      | 512   | 
| d    | 1      | 36    | 
| d    | 2      | 74    | 
| d    | 3      | 209   | 
| e    | 1      | 108   | 
| e    | 2      | 150   | 
| e    | 3      | 339   | 
| f    | 1      | 27    | 
| f    | 2      | 41    | 
| f    | 3      | 177   | 
| g    | 1      | 102   | 
| g    | 2      | 102   | 
| g    | 3      | 360   | 
| h    | 1      | 1     | 
| i    | 1      | 1     | 

我想做两件事……

  1. 对于 name 列中只出现一次的行,我希望将其从表中删除,这样我的输出将是删除行 'b'、'h' 和 'i'。

  2. 然后我想制作一个折线图,其中数字在 x 轴上,名称在 y 轴上,穿过的线是值,我做了一个粗略的插图来展示我的意思是(每行将是与名称对应的不同颜色)

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您要求的格式非常多。但这里是一个简单的例子:

    import io
    import pandas as pd
    import matplotlib.pyplot as plt
    
    string = u"""number,name,value
    a,1,13
    a,2,15
    a,3,18
    b,1,1
    c,1,17
    c,2,21
    """
    
    df = pd.read_csv(io.StringIO(string))
    
    # Remove uniques with boolean indexing
    df = df[df.duplicated('number',keep=False)]
    
    #https://stackoverflow.com/questions/41494942/pandas-dataframe-groupby-plot
    df.set_index('name', inplace=True)
    df.groupby('number')['value'].plot(legend=True)
    
    plt.show()
    

    【讨论】:

      【解决方案2】:

      旋转 DataFrame 并绘图

      df[['number', 'value']] = df[['number', 'value']].astype(int)
      name_cnt = df.groupby('name').size()
      required_nm = name_cnt[ name_cnt != 1].index
      required_rows = df.loc[df.name.isin(required_nm)]  # select non repeating row in 'name' columns
      
      required_rows.pivot(columns='name', index='number', values='value').plot()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-23
        • 1970-01-01
        • 2017-12-16
        • 1970-01-01
        • 2013-08-16
        • 2020-03-18
        • 2016-01-07
        相关资源
        最近更新 更多