2016-07-12 139 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')