我有一個數據框架結構從多年來的人口統計數據的CSV文件中派生而來。即,文件中的列是每月的時間間隔(1999-01,1999-02 ... 2016-12),並且行是世界上不同的人口中心(例如倫敦,多倫多,波士頓等):提取和分組熊貓數據框中的列集合
df = pd.DataFrame({'1999-01' : [100, 5000, 8000], '1999-02' : [200, 6000, 9000], '1999-03' : [300, 7000, 10000], ..., cities : ['CityA', 'CityB', 'CityC' ...]})
我想按季度分隔這些列。因此,我想借此平均人口從1999年至1901年,1999年至1902年,爲1999-9每一行,併爲此項創建新列「1999Q1」,以每3個月做這個:
df_quarter = pd.DataFrame({'1999Q1' : [200, 6000, 9000], '1999Q2' : ..., cities = ['CityA', 'CityB', 'CityC' ...]})
#Q1 corresponds to months 01-03, Q2 to months 04-06, Q3 to months 07-09, Q4 months 10-12, all inclusive
然而,我很難概念化查詢來完成此操作。我有一半的想法使用.groupby()然後.agg(),但我不知道如何有效地指定一個3列分組並遍歷列。有人能指點我正確的方向嗎?
編輯:假設列不是日期,而是更抽象的東西,並且不能使用時間段的簡單重新採樣。例如:
#Prices of different foods from different vendors
df = pd.DataFrame({'oranges' : [2, 3, 7], 'apples' : [6, 3, 9], 'cheese' : [13, 9, 11], 'milk' : [6, 5, 12], 'vendors' : ['VendorA', 'VendorB', 'VendorC']})
現在,如果我想創造兩列,結合水果和牛奶製品,是有一些方法我可以指定索引聚集呢?
請仔細閱讀[這](HTTP://計算器.com/questions/20109391/how-to-make-good-reproducible-pandas-examples),並學習如何問一個好的熊貓問題。沒有人會憑空爲您製作實例和解決方案。 –
將進行適當的編輯。 –