私のデータフレームは次のように再現できます。
import pandas as pd
link = 'https://raw.githubusercontent.com/timothylombard/RSB/master/RSBdata.csv'
df = pd.read_csv(link)
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
私がやりたいこと
次に、変更行と変更行の前の列値の違いを比較して報告します。写真を見て、2018-01-13にインデックス付けされたデータと2017-01-10を比較したい
これまでのところ、.shiftを使用して新しい列を追加することができました
df['PriorConnections'] = df['Connections'].shift()
次に、次のように差の値を持つ別の列を追加します。
df['Connections_Diff'] = df['Connections'] - df['PriorConnections']
次を使用して変更行を特定することもできます-
cr = df.loc[df.Connections_Diff > 0]
df.loc[cr]
df.loc [cr]の前の行を見つけるにはどうすればよいですか?
この方法で確認できますか?
>> df = pd.DataFrame({'Col1': [10, 20, 10, 15, 15],
'Col2': [13, 23, 18, 33, 48],
'Col3': [17, 27, 22, 37, 52]})
>> series_to_check = df['Col1']
>> [(i, i-1) for i in range(1,len(series_to_check)-1) if series_to_check[i]!=series_to_check[i-1] ]
>> [(1, 0), (2, 1), (3, 2)]
>> # returns a list of tuples [(`changed_row_index`, `previous_row_index`)]
基本的に、シリーズの各アイテムを以前のデータでチェックします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加