我有一个Pandas 数据框,它代表了我为工作而进行的旅行.每一行都是一次旅行,其中有一列是日期和旅行公里数.
除了每天的第一天和最后一天(这些被认为是正常的上下班旅行),我的每次旅行都会得到每公里的报销.
所以我的数据框看起来像这样:
day, distance
1, 5
1, 2
1, 7
2, 11
2, 11
3, 4
3, 10
3, 5
3, 12
我想在这里添加一个专栏,除了一天中的第一次和最后一次旅行之外,其他所有旅行都会被标记出来.例如:
day, distance, claimable
1, 5, 0
1, 2, 1
1, 7, 0
2, 11, 0
2, 11, 0
3, 4, 0
3, 10, 1
3, 5, 1
3, 12, 0
假设我有一个带有上述列的数据框架,有没有一种方法可以做到这样:
import pandas as pd
df = pd.DataFrame({'day':(1,1,1,2,2,3,3,3,3),
'dist':(5,2,7,11,11,4,10,5,12),
},)
df['claim'] = 0
# set the value of the "claimable" column to 1 on all
# but the first and last trip of the day
df.groupby("day").nth(slice(1,-1)).loc[:, "claim"] = 1