[英]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.