私のデータは工場からの不在レコードです。ある日は休みがないので、その日に記録されたデータや日付はありません。しかし、他の例が示されているところでこれが毛むくじゃらするところでは、さまざまな理由でいくつかの欠席がある可能性があります。データには常に1対1の比率のデータが記録されるとは限りません。上Pandas Reindexで不足する日付を記入するか、より良い方法で記入しますか?
(index) Shift Description Instances (SUM)
01-01-14 2nd Baker Discipline 0
01-01-14 2nd Baker Vacation 0
01-01-14 1st Cooks Discipline 0
01-01-14 1st Cooks Vacation 0
01-02-14 2nd Baker Discipline 4
01-02-14 2nd Baker Vacation 3
01-02-14 1st Cooks Discipline 3
01-02-14 1st Cooks Vacation 3
そしてそう:私は願ってい
結果はこのようなものです。アイデアはすべてシフトしており、説明には期間中のすべての日の値が含まれます(この例では、2014年1月1日〜2014年12月31日)
私はいくつかの例を読み、この作業を行うまではhereです。
ts = pd.read_csv('Absentee_Data_2.csv'
, encoding = 'utf-8'
,parse_dates=[3]
,index_col=3
,dayfirst=True
)
idx = pd.date_range('01.01.2009', '12.31.2017')
ts.index = pd.DatetimeIndex(ts.index)
# ts = ts.reindex(idx, fill_value='NaN')
df = pd.DataFrame(index = idx)
df1 = df.join(ts, how='left')
ただし、ts = ts.reindex(idx, fill_value='NaN')
のコメントを外すと、エラーメッセージが表示されます。私は何をしようとしているのかを達成するために少なくとも10の方法を試しました。これは正しい道であると100%確信していませんが、それは私にあらゆる進歩に最も近いと思われます。ここで
は、いくつかのサンプルデータです:あなたは助けるために
Description Unexcused Instances Date Shift
Discipline FALSE 1 Jan 2 2014 2nd Baker
Vacation TRUE 2 Jan 2 2014 1st Cooks
Discipline FALSE 3 Jan 2 2014 2nd Baker
Vacation TRUE 1 Jan 2 2014 1st Cooks
Discipline FALSE 2 Apr 8 2014 2nd Baker
Vacation TRUE 3 Apr 8 2014 1st Cooks
Discipline FALSE 1 Jun 1 2014 2nd Baker
Vacation TRUE 2 Jun 1 2014 1st Cooks
Discipline FALSE 3 Jun 1 2014 2nd Baker
Vacation TRUE 1 Jun 1 2014 1st Cooks
Vacation TRUE 2 Jul 5 2014 1st Cooks
Discipline FALSE 3 Jul 5 2014 2nd Baker
Vacation TRUE 2 Dec 3 2014 1st Cooks
は、事前にありがとう、私はあまり進展せず、この中初心者と2日間です。ここの人々が答えをどのように手助けしてくれるのか、本当に感謝します。私のような初心者は、知恵が共有されていることに非常に感謝しています。私はあなただけのdatetimeの使用に問題があると思う
両方の回答は機能しましたが、この1つは私の実際のデータを理解してループスルーするのが簡単でした。それ以上の操作と思考が必要でしたが、これは私が使用した答えです。 – SDS