2017-03-23 15 views

答えて

3

ありがとうshiftれた電子sub、ため削除最初の列iloc

df = df.set_index('id') 
df = df.sub(df.shift(axis=1)).iloc[:, 1:].reset_index() 
print (df) 
    id b c d 
0 0 2.0 1.0 1.0 
1 1 1.0 2.0 1.0 

intに変換する必要がある場合:変更された列名の場合

df = df.set_index('id') 
df = df.sub(df.shift(axis=1)).iloc[:, 1:].astype(int).reset_index() 
print (df) 
    id b c d 
0 0 2 1 1 
1 1 1 2 1 

df = df.set_index('id') 
cols = df.columns 

df = df.sub(df.shift(axis=1)).iloc[:, 1:].astype(int) 
df.columns = cols[1:] + '-' + cols[:-1] 
df = df.reset_index() 
print (df) 
    id b-a c-b d-c 
0 0 2 1 1 
1 1 1 2 1 
+0

ありがとうございます!最初のオプションのデータは完全に機能しますが、カラム名をb、c、dではなくa、b、cにする方法がありますか? – Stefan

+0

編集した回答を確認してください。 – jezrael

+0

ありがとう、これは私の最初のループソリューションよりもはるかに良い作品:) – Stefan

関連する問題