2016-07-12 137 views
1
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不知道。任何帮助,将不胜感激。

回答

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() 

graph

+0

我们可以在桌面上并排放置饼图和桌子吗? 例如,我有一个使用“%%图饼馅饼 - 字段值,计数 - 数据df2”的饼图和使用“%%图表表 - 字段计算机名 - 数据df_result2”的表。但是,图表和表格分开,我需要并排。 IPython中有这个选项吗? – user3447653

+0

对我来说很难的问题,因为我从来没有这样使用'IPython',但试试[this](http://stackoverflow.com/questions/8524401/how-can-i-place-a-table-on-a-情节在-matplotlib)。我知道'pandas'是否只使用'plot' - [tables wih graph](http://pandas.pydata.org/pandas-docs/stable/visualization.html#plotting-tables) – jezrael

0

我不知道你使用的是什么使你的饼图,但大熊猫有一些非常合理的绘图功能(通过matplotlib)。

df1.plot(kind='pie')