【发布时间】:2018-03-31 03:03:07
【问题描述】:
A B C
0 2002-01-13 18 120
1 2002-01-13 7 150
2 2002-01-13 11 130
3 2002-01-13 26 140
4 2002-01-14 13 180
5 2002-01-14 25 165
6 2002-01-14 9 150
7 2002-01-14 4 190
我有这个df。
我应用此代码:
df2 = df.loc[df['B'].sub(10).abs().groupby(df['A']).idxmin()]
导致df2:
A B C
2 2002-01-13 11 130
6 2002-01-14 9 150
现在我想创建一个新的 df3,在 df 中选择满足下一个条件的行,每个 A 组:
-
df["C"] = df2["C"] + 20(对于2002-01-13组,130 + 20 = 150)。 - 如果在满足
df["C"] = df2["C"] + 20的df行中不存在,则取第一个较低的值(在2002-01-14组的情况下,150 + 20 = 170。由于 170 不存在,请选择下一个较低,表示 165)。
df3 输出应该是:
A B C
1 2002-01-13 7 150
5 2002-01-14 25 165
【问题讨论】:
标签: python pandas conditional