python - 如何使用 pandas 根据日期列和天数列将行添加到数据框

标签 python pandas

我想知道如何使用数据框列中的开始日期,并让它根据另一列中的天数向数据框添加行。每天一个新日期。

本质上,我正在尝试转动这个数据框:

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)

关于python - 如何使用 pandas 根据日期列和天数列将行添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58960930/

相关文章:

python - 当pandas中有混合列数据时添加条件滚动计数

python - 当x轴不连续时如何删除冗余日期时间 pandas DatetimeIndex

python - Seaborn:如何为每组创建一个包含 2 个变量的条形图?

python lxml xpath 在带有文本的列表中返回转义字符

python - Python 中的脚本标准输出比较

python - 如何避免 AttributeError : '_tkinter.tkapp' object has no attribute 'PassCheck'

Visual Studio 2015(社区)中的 Python (WinPython 3.4) 抛出 KeyError

python - 提取具有多个值的 : Python dictionary, 键

python - 如何在 Pandas 中使用 Rolling OLS Model 接口(interface)?

python - 如何在python中绘制 'historical'数据