2つのデータフレームがあります。
列 'state'、 'date'、 'number'を持つdf1
'state'、 'specificDate'の列を持つdf2(1つの状態に対して1つのspecificDate、各状態は1回だけ言及されます)
最後に、「state」、「specificDate」、「number」の列を持つデータセットが必要です。また、それぞれの特定の日付に14日を追加し、それらの日付の数値も取得したいと思います。
私はこれを試しました
df = df1.merge(df2, left_on='state', right_on='state')
df['newcolumn'] = np.where((df.state == df.state)& (df.date == df.specificDate), df.numbers)
df['newcolumn'] = np.where((df.state == df.state)& (df.date == df.specificDate+datetime.timedelta(days=14)), df.numbers)
しかし、私はこのエラーを受け取りました:ValueError:複数の要素を持つ配列の真理値はあいまいです。a.any()またはa.all()を使用します
all()を追加しても、同じエラーが発生します
私の論理は正しくないと感じています。これらの値をデータセットに挿入するには、他にどのようにすればよいですか?
df2
結合の左側として使用したいと思います。pd.DateOffset
14日を追加するために使用できます。
# create dataset with specific date and specific date + 14
df2_14 = df2.set_index('state')['date'].apply(pd.DateOffset(14)).reset_index()
df = pd.concat([df2, df2_14])
# now join the values from df1
df = df.join(df1.set_index(['state', 'date']),
how='left',
on=['state', 'specificDate'])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加