[英]Pandas - How to form groups then plot distribution (barplot) for each group based on two columns?
----| col_1 | col_2 | col_3 (...) row_1| "A" "Yes" "Yes" row_2| "B" "Yes" "No" row_3| "A" "Yes" "Yes" row_4| "A" "No" "Yes"
----| col_1 | col_2 | col_3 (...) row_1| "A" "Yes" "Yes" row_2| "B" "Yes" "No" row_3| "A" "Yes" "Yes" row_4| "A" "No" "Yes"
Result for "A": 2 | 1 | | ("Yes", "Yes") ("No", "Yes") ("Yes", "No") ("No", "No")
----| col_1 | col_2 | col_3 (...) row_1| "A" "Yes" "Yes" row_2| "B" "Yes" "No" row_3| "A" "Yes" "Yes" row_4| "A" "No" "Yes"
结果 "A": 2 | 1 | | ("Yes", "Yes") ("No", "Yes") ("Yes", "No") ("No", "No")
2 | 1 | | ("Yes", "Yes") ("No", "Yes") ("Yes", "No") ("No", "No")
How do I group a pandas DataFrame in the above format by col_1 and create a barplot for each group which visualises the distribution (number of occurrences) of value pairs (col_2, col_3) ?如何通过COL_1做我基的熊猫数据帧在上述格式和为每个组创建该形象化值对的分布(出现次数)(COL_2,col_3)一个barplot? Col_2 and col_3 have two distinct values which are "Yes" and "No" .
Col_2和col_3有两个不同的值,分别是"Yes"和"No" 。 The possible pairs would be ("Yes", "Yes") , ("Yes", "No") , ("No", "Yes") , ("No", "No") .
可能的对是("Yes", "Yes") , ("Yes", "No") , ("No", "Yes") , ("No", "No") 。
Thanks in advance!提前致谢!
import matplotlib.pyplot as plt
df = pd.DataFrame(
[['A', 'Yes', 'Yes'],
['B', 'Yes', 'No'],
['A', 'Yes', 'Yes'],
['A', 'No', 'Yes']],
columns= ['col_1', 'col_2', 'col_3']
)
for key, grp in df.groupby(['col_2', 'col_3']):
grp['col_1'].hist()
plt.show()
You should see 3 plots -one for each col_2/col_3 pairing您应该看到 3 个图 - 每个 col_2/col_3 配对一个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.