我试图添加一个新列,其中包含一列的第一个值和另一列的最后一个值之间的差值 我在用这个命令
df['diff']=df.groupby(['T_Id'])['EndMeterReading'].max()-df['StartMeterReading'].min()
但是它用NaN
填充新的列
我怎样才能达到我想要的结果。你知道吗
原始数据帧
+------+-------+--------------+------------+
| D_Id | T_Id | StartReading | EndReading |
+------+-------+--------------+------------+
| 1 | 4716a | 4323.17 | 4324.8 |
| 1 | 4716a | 4324.96 | 4325.34 |
| 1 | 4716a | 4326.47 | 4327.22 |
| 1 | 4716a | 4327.4 | 4328.43 |
| 1 | 4716a | 4328.85 | 4330.73 |
| 1 | 4716b | 4346.65 | 4347.62 |
| 1 | 4716b | 4347.67 | 4349.88 |
| 1 | 4716b | 4351.62 | 4351.83 |
| 1 | 4716b | 4352.88 | 4354.32 |
| 1 | 4716b | 4354.93 | 4355.14 |
| 1 | 4716b | 4355.2 | 4355.82 |
| 1 | 4716b | 4356.91 | 4357.37 |
| 1 | 4716b | 4357.74 | 4358.26 |
| 1 | 4716b | 4359.89 | 4360.46 |
| 1 | 4716b | 4360.61 | 4361.43 |
| 1 | 4716b | 4361.47 | 4362.11 |
| 1 | 4716b | 4362.88 | 4368.49 |
| 1 | 4716b | 4368.94 | 4369.78 |
| 1 | 4716b | 4370.91 | 4371.25 |
| 1 | 4716b | 4372.67 | 4372.77 |
+------+-------+--------------+------------+
期望输出:
+------+-------+--------------+------------+------------------+
| D_Id | T_Id | StartReading | EndReading | Diff |
+------+-------+--------------+------------+------------------+
| 1 | 4716a | 4323.17 | 4324.8 | 7.56 |
| 1 | 4716a | 4324.96 | 4325.34 | 7.56 |
| 1 | 4716a | 4326.47 | 4327.22 | 7.56 |
| 1 | 4716a | 4327.4 | 4328.43 | 7.56 |
| 1 | 4716a | 4328.85 | 4330.73 | 7.56 |
| 1 | 4716b | 4346.65 | 4347.62 | 26.12 |
| 1 | 4716b | 4347.67 | 4349.88 | 26.12 |
| 1 | 4716b | 4351.62 | 4351.83 | 26.12 |
| 1 | 4716b | 4352.88 | 4354.32 | 26.12 |
| 1 | 4716b | 4354.93 | 4355.14 | 26.12 |
| 1 | 4716b | 4355.2 | 4355.82 | 26.12 |
| 1 | 4716b | 4356.91 | 4357.37 | 26.12 |
| 1 | 4716b | 4357.74 | 4358.26 | 26.12 |
| 1 | 4716b | 4359.89 | 4360.46 | 26.12 |
| 1 | 4716b | 4360.61 | 4361.43 | 26.12 |
| 1 | 4716b | 4361.47 | 4362.11 | 26.12 |
| 1 | 4716b | 4362.88 | 4368.49 | 26.12 |
| 1 | 4716b | 4368.94 | 4369.78 | 26.12 |
| 1 | 4716b | 4370.91 | 4371.25 | 26.12 |
| 1 | 4716b | 4372.67 | 4372.77 | 26.12 |
+------+-------+--------------+------------+------------------+
使用^{} 与
max
和min
函数,使Series
具有与原始DataFrame
相同的大小,以便可以正确减去:使用
groupby
查找first
和last
,然后merge
返回原始df相关问题 更多 >
编程相关推荐