我有數據並將其轉換成數據幀轉化列數據框大熊貓入序列
d = [
(1,70399,0.988375133622),
(1,33919,0.981573492596),
(1,62461,0.981426807114),
(579,1,0.983018778374),
(745,1,0.995580488899),
(834,1,0.980942505189)
]
df = pd.DataFrame(d, columns=['source', 'target', 'weight'])
>>> df
source target weight
0 1 70399 0.988375
1 1 33919 0.981573
2 1 62461 0.981427
3 579 1 0.983019
4 745 1 0.995580
5 834 1 0.980943
我需要轉換列源入序列,我一直在使用
df.source = (df.source.diff() != 0).cumsum() - 1
嘗試,但我只是得到:
>>> df
source target weight
0 0 70399 0.988375
1 0 33919 0.981573
2 0 62461 0.981427
3 1 1 0.983019
4 2 1 0.995580
5 3 1 0.980943
我需要變換值列的基於目標的數值源,理想的結果是:
>>> df
source target weight
0 0 70399 0.988375
1 0 33919 0.981573
2 0 62461 0.981427
3 1 0 0.983019
4 2 0 0.995580
5 3 0 0.980943
值在源target
變化匹配值,在source
,value
1變化爲0,所以我需要改變target
value
1到0太
我怎麼能這樣做?也許任何人都可以幫助我:)
謝謝:)
1)沒有'value'專欄中,我假設你指的是'target'。 2)根據你的例子,我不清楚爲什麼前三個「目標」值不變。 – Alexander
對不起..是沒有價值的列...值是我指的列在源或目標int ... – ihsansat
因爲第一個目標不匹配源列... – ihsansat