데이터 프레임 열에서 시작 날짜를 사용하고 다른 열의 일 수에서 데이터 프레임에 행을 추가하는 방법을 알고 싶습니다. 매일 새로운 날짜.
기본적으로이 데이터 프레임을 바꾸려고합니다.
df = pd.DataFrame({
'Name':['Peter', 'Peter', 'Peter', 'Peter'],
'Planned_Start':['1/1/2019', '1/2/2019', '1/15/2019', '1/2/2019'],
'Duration':[2, 3, 5, 6],
'Hrs':[0.6, 1, 1.2, 0.3]})
...이 데이터 프레임에 :
df_2 = pd.DataFrame({
'Name':['Peter', 'Peter', 'Peter', 'Peter', 'Peter', 'Peter', 'Peter', 'Peter'],
'Date':['1/1/2019', '1/2/2019', '1/2/2019', '1/3/2019', '1/4/2019','1/10/2019', '1/15/2019', '1/16/2019'],
'Hrs':[0.6, 0.6, 1, 1, 1, 1.2, 0.3, 0.3]})
나는 일반적으로 프로그래밍에 익숙하지 않으며 다음을 시도했습니다.
df_2 = pd.DataFrame({
'date': pd.date_range(
start = df.Planned_Start,
end = pd.to_timedelta(df.Duration, unit='D'),
freq = 'D'
)
})
... 그리고 ...
df["date"] = df.Planned_Start + timedelta(int(df.Duration))
운이 없다.
df_2가 내가 볼 수있는 것에서 약간 잘못 보이기 때문에 달성하려는 것이 무엇인지 잘 모르겠습니다.
기간 열을 일로 취하고이 많은 날짜를 날짜 열에 추가하려면 아래 코드가이를 달성합니다.
pd.Series.drop()
메서드를 사용 하여 필요하지 않은 열을 삭제할 수도 있습니다 .
df = pd.DataFrame({
'Name':['Peter', 'Peter', 'Peter', 'Peter'],
'Planned_Start':['1/1/2019', '1/2/2019', '1/15/2019', '1/2/2019'],
'Duration':[2, 3, 5, 6],
'Hrs':[0.6, 1, 1.2, 0.3]})
df_new = pd.DataFrame()
for i, row in df.iterrows():
for duration in range(row.Duration):
date = pd.Series([pd.datetime.strptime(row.Planned_Start, '%m/%d/%Y') + timedelta(days=duration)], index=['date'])
newrow = row.append(date)
df_new = df_new.append(newrow, ignore_index=True)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다