我不確定哪個是解決這個問題的最有效過程,所以我會很廣泛。我想將where與特定值shift結合起來。對于下面的內容,我想提高價值所在。但我想將它與上面的字符串結合起來,而不是覆蓋它。row==dfshift rows==X注意:row我要shift升級的是每個14th row. 所以每隔 n 次row及shift以上選擇一次可能更容易?df = pd.DataFrame({ 'Value' : ['Foo','X','00:00','00:00','29:00','30:00','00:00','02:00','15:00','20:00','10:00','15:00','20:00','25:00'], 'Number' : [00,0,1,2,3,4,5,6,7,8,9,10,11,12], })val = ['X']a = df[df.isin(val)].shift(-1)df[df.isin(val)] = np.nanout_df = a.combine_first(df)出去: Value Number0 X 0.01 NaN 0.02 00:00 1.03 00:00 2.04 29:00 3.05 30:00 4.06 00:00 5.07 02:00 6.08 15:00 7.09 20:00 8.010 10:00 9.011 15:00 10.012 20:00 11.013 25:00 12.0預期輸出: Value Number0 Foo X 0.02 00:00 1.03 00:00 2.04 29:00 3.05 30:00 4.06 00:00 5.07 02:00 6.08 15:00 7.09 20:00 8.010 10:00 9.011 15:00 10.012 20:00 11.013 25:00 12.0
1 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
你可以嘗試這樣的事情:
df.groupby((df['Value'] != val[0]).cumsum())[['Value','Number']].agg({'Value':' '.join, 'Number':'sum'})
輸出:
Value Number
Value
1 Foo X 0
2 00:00 1
3 00:00 2
4 29:00 3
5 30:00 4
6 00:00 5
7 02:00 6
8 15:00 7
9 20:00 8
10 10:00 9
11 15:00 10
12 20:00 11
13 25:00 12
添加回答
舉報
0/150
提交
取消