[英]Plotting data lines from pandas dataframe, identified by keys in one column instead by different columns
[英]Matplotlib plotting different lines from one column in Dataframe
我有一個 Dataframe 跟蹤“種族”列的停靠點數,我想 plot 每年不同種族的停靠點數。 我的 df 看起來像這樣。
年 | 種族 |
---|---|
2001年 | 黑色的 |
2001年 | 白色的 |
2001年 | 黑色的 |
2002年 | 白色的 |
2002年 | 白色的 |
2002年 | 黑色的 |
2002年 | 白色的 |
我現在想 plot 每年每個種族的停靠總數。 我如何將不同種族分成不同的 y 軸。
希望清楚:)
我能夠使用以下代碼將不同的種族分成兩個不同的 y 軸:
y_black = df[df['ethnicity'] == 'Black'].groupby(['year'])['ethnicity'].count().tolist()
y_white = df[df['ethnicity'] == 'White'].groupby(['year'])['ethnicity'].count().tolist()
希望這可以幫助某人
您可以使用groupby
對數據進行分組,然后計算出現次數。
from matplotlib import pyplot as plt
import pandas as pd
#fake data generation
import numpy as np
n = 50
np.random.seed(123)
df = pd.DataFrame({"A": np.random.choice([2001, 2002, 2004, 2007], size=n), "B": np.random.choice(list("XYZ"), size=n)})
#group df by both columns - >count elements in B for each A -> unstack the returned multiindex df for matplotlib
plot_df = df.groupby(["A", "B"]).B.count().unstack()
print(plot_df)
#pandas provides common plotting routines using matplotlib
plot_df.plot()
plt.show()
樣品 output:
B X Y Z
A
2001 7 3 5
2002 1 6 4
2004 2 5 6
2007 4 3 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.