我有一个如下所示的数据框
Tenancy_ID Unit_ID End_Date Rental_value
1 A 2012-04-26 10
2 A 2012-08-27 20
3 A 2013-04-27 50
4 A 2014-04-27 40
1 B 2011-06-26 10
2 B 2011-09-27 30
3 B 2013-04-27 60
4 B 2015-04-27 80
从上面我想在下面的数据框里准备
预期输出:
Unit_ID Avg_2011 Avg_2012 Avg_2013 Avg_2014 Avg_2015
A NaN 15 50 40 NaN
B 20 NaN 60 NaN 80
步骤:
Unit_ID = A,2012年有两份合同,租金分别为10和20,因此平均为15。
2012年平均租金= 2012年的平均租金价值。
答案 0 :(得分:4)
直接将pivot_table
与s.dt.year
一起使用
[AuthorizeProperty("Boss")]
public double Salary { get; set; }
#df['End_Date']=pd.to_datetime(df['End_Date']) if dtype of End_Date is not datetime
final = (df.pivot_table('Rental_value','Unit_ID',df['End_Date'].dt.year)
.add_prefix('Avg_').reset_index().rename_axis(None,axis=1))
答案 1 :(得分:3)
您可以汇总平均值并通过Series.unstack
进行整形,最后更改列名称通过DataFrame.add_prefix
以及最近的数据清除-DataFrame.reset_index
使用DataFrame.rename_axis
:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="button" class="onoff" style="margin-left:100px">
<input type="checkbox" id="tool_closed_onoff" name="tool_closed_onoff" style="width:20px; height:20px;" />
<label for="tool_closed_onoff" /></label>
</div>
<br /><br />
<div id="select" style="margin-left:100px">
<select>
<option value="No option" selected="selected">No option</option>
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
</div>