考える:
DFの下から、Python_Pandas:datetime値は、特定の日付期間に該当する場合は、特定の値を持つ列を作成
df = pd.DataFrame(
{"date":['2016-6-1', '2016-9-22', '2016-10-28', '2016-11-4', '2016-6-29', '2016-10-1', '2016-6-15', '2016-7-29', '2016-11-1'],
"score":[9, 8, 8, 10, 6, 7, 7, 7, 6]
})
は、タスクの下に実行します。日付の
は基準を下回っ満たします'staffNumber'という新しく追加された列に特定の値を追加します。
IF 'date'が6/1/2016〜9/22/2016になる場合1の値を持つ新しい列を作成します。
'日付が'/'日付が' 10/2016分の29〜11の下に該当する場合2.
の値を持つ新しい列を作成しますが9/2016分の23 ~10/2016分の28の下にある場合2016分の4 THANは次のようになります。3
最終結果の値を持つ新しい列を作成します。
df2 = pd.DataFrame(
{"date":['2016-6-1', '2016-9-22', '2016-10-28', '2016-11-4', '2016-6-29', '2016-10-1', '2016-6-15', '2016-7-29', '2016-11-1'],
"score":[9, 8, 8, 10, 6, 7, 7, 7, 6],
"staffNumber":[1,1,2,3,1,2,1,1,3]
})
私が試したもの:
私は通常質問をする前に何かを試します。しかし、これについて私はどんなアプローチも考えられませんでした。
私は、リンクをたどることからnp.where & .isinを使用して見て: 1. Python numpy where function with datetime 2. Using 'isin' on a date in a pandas column 3. Pandas conditional creation of a series/dataframe column
任意の助けが理解されるであろう!
これはサンプルDFのために働きました。しかし、私が解決しなければならない問題のために、私は6つの異なる日付範囲、6/1/2016〜今、これらの範囲はすべて異なる値を持っています(1,2,1,0,1,0,1,0、-1 、-2、-3、-4、-4、-3、-2、-3)である。 最初のアプローチ 'cut'メソッドはValueErrorでは機能しませんでした:カテゴリカテゴリは一意でなければなりません。 私は2番目の方法を試しています。しかし、どこで2番目の方法で範囲(1,4)を適用しましたか?もう一つ懸念しているのは私の問題です。負の数もあります。 – Johnny
私は答えを編集し、 'searchosrted'関数から返されたインデックスでのみ' l'を使っています。 – jezrael