簡體   English   中英

根據大熊貓中的定性數據繪制布爾頻率

[英]Plotting boolean frequency against qualitative data in pandas

首先,我要說我不是統計分析方面的真正才華。 我有一個存儲在.csv文件中的數據集,該數據集希望以圖形方式表示。 我要代表的是其他列中每個唯一條目的生存頻率(在“生存”列中,每個人用0或1表示)。

例如:其他列之一“類”保存三個可能值(1、2或3)之一。 我想畫出第1類相對於第2類相對於第3類生存的可能性,以便我可以直觀地確定該類是否與生存率相關。

我已經附上了到目前為止已經開發的代碼片段,但是我會知道我所做的一切是否都錯了,因為我以前從未使用過熊貓。

  1 import pandas as pd
  2 import matplotlib.pyplot as plt
  3 
  4 df = pd.read_csv('train.csv')
  5 
  6 print(list(df)[2:]) # slicing first 2 values of "ID" and "Survived"
  7 
  8 for column in list(df)[2:]:
  9     try:
 10         df.plot(x='Survived',y=column,kind='hist')
 11     except TypeError:
 12         print("Column {} not usable.".format(column))
 13 
 14 plt.show()

編輯:我附加了下面的數據框的一小部分

     PassengerId  Survived  Pclass                                               Name  ...            Ticket      Fare        Cabin  Embarked  
0              1         0       3                            Braund, Mr. Owen Harris  ...         A/5 21171    7.2500          NaN         S  
1              2         1       1  Cumings, Mrs. John Bradley (Florence Briggs Th...  ...          PC 17599   71.2833          C85         C  
2              3         1       3                             Heikkinen, Miss. Laina  ...  STON/O2. 3101282    7.9250          NaN         S  
3              4         1       1       Futrelle, Mrs. Jacques Heath (Lily May Peel)  ...            113803   53.1000         C123         S  
4              5         0       3                           Allen, Mr. William Henry  ...            373450    8.0500          NaN         S  
5              6         0       3                                   Moran, Mr. James  ...            330877    8.4583          NaN         Q 

我想你想要這個:

df.groupby('Pclass')['Survived'].mean()

這將根據Pclass的三個唯一值將數據幀分為三組。 然后,它取Survived的平均值,等於1個值的數量除以total的數量。 這將產生一個看起來像這樣的數據框:

Pclass
1    0.558824
2    0.636364
3    0.696970

然后,如果需要,可以從那里.plot.bar()使用.plot.bar()繪制條形圖。

除了答案 ,這是一個簡單的條形圖。

result = df.groupby('Pclass')['Survived'].mean()

result.plot(kind='bar', rot=1, ylim=(0, 1))

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM