【问题标题】:Format a pandas dataframe格式化熊猫数据框
【发布时间】:2016-07-12 18:44:37
【问题描述】:
    MachineName EventLogs
0   P79         Yes
1   P14         Yes
2   P1          No
3   P93         No

我使用以下语句计算数据框中的日志数:

df1 = pd.value_counts(df['Logs'].values, sort=False)

当我打印df1 时,输出如下:

Yes  2
No   2
dtype: int64

我无法使用结果创建饼图,因为我需要在创建饼图时指定列名。

类似

%%chart pie --fields Value,Count --data df1

不确定如何将列名添加到df1。任何帮助将不胜感激。

【问题讨论】:

    标签: python pandas matplotlib dataframe pie-chart


    【解决方案1】:

    你需要reset_index,因为你有Series

    df1 = pd.value_counts(df['Logs'].values, sort=False).reset_index()
    df1.columns = ['value','count']
    

    带样品:

    df1 = pd.value_counts(df['EventLogs'].values, sort=False).reset_index()
    df1.columns = ['value','count']
    print (df1)
      value  count
    0    No      2
    1   Yes      2
    

    或者你可以使用value_counts:

    df1 = df.EventLogs.value_counts().reset_index(name='Count').rename(columns={'index':'Value'})
    print (df1)
      Value  Count
    0   Yes      2
    1    No      2
    

    sort=False:

    df1 = df.EventLogs.value_counts(sort=False)
                      .reset_index(name='Count')
                      .rename(columns={'index': 'Value'})
    print (df1)
      Value  Count
    0    No      2
    1   Yes      2
    

    另一种解决方案是Series.plot.pie - 请参阅visualization in docs

    import matplotlib.pyplot as plt
    df.EventLogs.value_counts(sort=False).plot.pie()
    plt.show()
    

    【讨论】:

    • 我们可以在笔记本中并排放置饼图和表格吗?例如,我有一个使用“%%chart pie --fields value,count --data df2”的饼图和一个使用“%%chart table --fields MachineName --data df_result2”的表,但不是放置饼图和桌子分开,我需要并排放置。在 IPython 中有这样的选项吗?
    • 对我来说是个难题,因为我从不这样使用IPython,但请尝试this。我知道pandas 如果只使用plot - tables wih graph
    【解决方案2】:

    我不知道你用什么来制作饼图,但 pandas 有一些非常合理的绘图功能(通过 matplotlib)。

    df1.plot(kind='pie')

    【讨论】:

      猜你喜欢
      • 2019-03-17
      • 1970-01-01
      • 2020-08-03
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      相关资源
      最近更新 更多