2
我意識到這個問題類似於join or merge with overwrite in pandas,但接受的答案不適用於我,因爲我想從df.join()
使用on='keys'
。Python熊貓加入並覆蓋
我有一個數據幀df
它看起來像這樣:
keys values
0 0 0.088344
1 0 0.088344
2 0 0.088344
3 0 0.088344
4 0 0.088344
5 1 0.560857
6 1 0.560857
7 1 0.560857
8 2 0.978736
9 2 0.978736
10 2 0.978736
11 2 0.978736
12 2 0.978736
13 2 0.978736
14 2 0.978736
然後,我有一個系列s
(這是從一些df.groupy.apply()
結果)使用相同的按鍵:
keys
0 0.183328
1 0.239322
2 0.574962
Name: new_values, dtype: float64
基本上我想在df
與該系列中的值,以取代「價值」,通過keys
所以每keys
塊獲取相同的新值。目前,我做如下:
df = df.join(s, on='keys')
df['values'] = df['new_values']
df = df.drop('new_values', axis=1)
所獲得的(與指定的)結果則是:
keys values
0 0 0.183328
1 0 0.183328
2 0 0.183328
3 0 0.183328
4 0 0.183328
5 1 0.239322
6 1 0.239322
7 1 0.239322
8 2 0.574962
9 2 0.574962
10 2 0.574962
11 2 0.574962
12 2 0.574962
13 2 0.574962
14 2 0.574962
也就是說,我將其添加爲新列,並通過使用on='keys'
它得到校正形狀。然後我給你values
是new_values
並刪除new_values
列。這當然是完美的,唯一的問題是我覺得它非常難看。
有沒有更好的方法來做到這一點?