感謝您的時間。我不是高級程式員。我正在學習 1 門編程課程。我了解基礎知識和適量的 Python。請不要破壞我對編程的一點信心。我意識到答案可能存在,但我還沒有以我的搜索技能找到它。

問題:計算 2010-2020 年期間每年新增教職工人數。創建一個名為 的資料框,NewFacultyStaff其中包含三列Year,其中列的取值范圍為 2010 年到 2020 年。該資料框的每一行都記錄了特定年份的新教員人數和新教員人數。DataFrame 的前五行應如下所示:New_Faculty_NumNew_Staff_NumYear

我能做什么或已經做什么:
My_list = [*range(2010, 2021, 1)]
df1 = FacultyStaff2020to2021[['Year', 'Faculty or Staff']]
df1 = df1[df1['Year'].isin(My_list)]
df2 = df1.value_counts()
df2
解決環島方式
new_faculty = [23,40,30,40,45,71,65,46,31,54,33]
new_staff = [3,7,13,7,10,41,28,44,33,52,11]
df3 = pd.DataFrame(My_list, columns= ['Year'])
df3['New_Facuty_Num'] = new_faculty
df3['New_Staff_Num'] = new_staff
df3
如果您查看“以迂回方式解決”,我可以通過基本上手動將 df1.value_counts() 的結果輸入兩個串列并將它們分別附加到我想要的資料框來解決它......但這很草率并且進一步說明我不知道該怎么做。我想學著像程式員那樣做。
從我對 stackoverflow 和 google 的搜索中,我了解到我可以通過使用 seriess.value_count 或執行上述操作來獲得計數。因為我只對 2010-2020 年的日期感興趣,所以我洗掉了 my_list 中沒有的任何年份值。
我知道我可以創建頻率計數。我可以這樣計算每年的總數:

我已經嘗試了更多的方法來解決它,但我的帖子已經很忙了,我不確定用錯誤的代碼弄亂這個問題是否會有所幫助。
我想了解的
我不知道如何以編程方式解決這個問題,它應該是什么樣子(請參閱“它應該是什么樣子”鏈接)。我已經用谷歌搜索了我能想到的所有東西,但要么我搜索不正確,要么我還沒有偶然發現我需要的東西。
研究:
價值計數,
按方法分組
uj5u.com熱心網友回復:
這是您可以做到的一種方法:從您提供的 df 開始FacultyStaff2020to2021
# groupby year and Faculty or stuff and count all the values.
# now you have multiindex with year(level=0) and Faculty or staff(level=1)
# since you want level=1 as columns, you can use `unstack()`
# rename_axis = None deletes the name of the column level
# rename changes the name of each column to the desired names
tmp = (
FacultyStaff2020to2021.groupby(["Year", "Faculty or Staff"])["Faculty or Staff"]
.count()
.unstack(level=1)
.rename_axis(columns=None)
.rename(columns={"Faculty": "New_Faculty_Num", "Staff": "New_Staff_Num"})
)
# Because year is the index of the dataframe you can directly access is by `loc`
result = tmp.loc[2010:2020, :].reset_index()
print(result)
Year New_Facuty_Num New_Staff_Num
0 2010 23.0 3.0
1 2011 40.0 7.0
2 2012 30.0 13.0
3 2013 40.0 7.0
4 2014 45.0 10.0
5 2015 71.0 41.0
6 2016 65.0 28.0
7 2017 46.0 44.0
8 2018 31.0 33.0
9 2019 54.0 52.0
10 2020 33.0 11.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/468423.html
