【发布时间】:2018-03-17 05:29:11
【问题描述】:
我需要遍历数据框以获取第一个日期的值以移动到下一行并从相同的第一个值开始。重要的是,在下面的示例中,我需要新输入在列范围内停止,并且不会在第 5 天后溢出。
当前输出:
day1 day2 day3 day4 day5
date
2018-03-16 1.0 2.0 3.0 4.0 5.0
2018-03-17 NaN NaN NaN NaN NaN
2018-03-18 NaN NaN NaN NaN NaN
2018-03-19 NaN NaN NaN NaN NaN
2018-03-20 NaN NaN NaN NaN NaN
想要的输出:
day1 day2 day3 day4 day5
date
2018-03-16 1.0 2.0 3.0 4.0 5.0
2018-03-17 NaN 1.0 2.0 3.0 4.0
2018-03-18 NaN NaN 1.0 2.0 3.0
2018-03-19 NaN NaN NaN 1.0 2.0
2018-03-20 NaN NaN NaN NaN 1.0
要迭代的示例代码:
data = [1, 2, 3, 4, 5]
columns_name = ['day1', 'day2', 'day3', 'day4', 'day5']
df = pd.DataFrame(data)
df = df.T
df.columns = columns_name
dates = pd.date_range('2018-03-16', '2018-03-20').tolist()
dates_df = pd.DataFrame(dates)
dates_df.columns = ['date']
dfs = [df, dates_df]
combined = pd.concat(dfs, axis=1)
combined = combined.set_index(['date'])
【问题讨论】:
标签: python pandas numpy dataframe shift