DataFrameでDateデータをつくるときにIDの情報を消したくないです。
import pandas as pd import io data=""" 0,19990214 1,1001 Tom 30 59 20 41 59 2,1002 Judy 40 50 31 53 60 0,19991215 1,1001 Tom 45 69 30 21 69 2,1002 Judy 50 20 71 43 70 """ df = pd.read_table( io.StringIO(data), names=["ID", "Date", "Name", "A", "B", "C", "D", "E"], sep='\s+|,', engine='python') df['GroupID'] = (df.ID == 0).cumsum() conv = df.loc[df.ID==0, ['GroupID','Date']].set_index('GroupID').iloc[:,0] df['Date'] = df.GroupID.map(conv) df['Date'] = pd.to_datetime(df.Date.astype(str)) df = df.drop(df[df.ID == 0].index) df = df.drop(columns=['GroupID']) df = df.reset_index(drop=True) print(df)
と書いてコードを実行したとき、
1 1999-02-14 Tom 30.0 59.0 20.0 41.0 59.0 2 1999-02-14 Judy 40.0 50.0 31.0 53.0 60.0 1 1999-12-15 Tom 45.0 69.0 30.0 21.0 69.0 2 1999-12-15 Judy 50.0 20.0 71.0 43.0 70.0
という風に出力されます。
しかし、1001・1002 のID情報もDataFrameに残したいです。
理想のアウトプットは
1 1999-02-14 Tom 30.0 59.0 20.0 41.0 59.0 1001 2 1999-02-14 Judy 40.0 50.0 31.0 53.0 60.0 1002 1 1999-12-15 Tom 45.0 69.0 30.0 21.0 69.0 1001 2 1999-12-15 Judy 50.0 20.0 71.0 43.0 70.0 1002
のようにすることです。del文を使いデータを消しているわけではないのでなぜデータが消えてしまうのでしょうか?
どのように修正すれば意図したDataFrameになるでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。