python - 在 DataFrame 中为一系列日期创建 id

标签 python pandas date

我想创建一个数据框,其中以下每个 id 位于 df1 中每个日期的列中。

id = ['A', 'B', 'C']
df1 = pd.DataFrame()
df1['date'] = pd.date_range(start= '2000-1-1', end = '2010-12-31', freq = 'B')

我希望数据如下所示:

           date     id
0    2000-01-03      A
1    2000-01-03      B
2    2000-01-03      C
3    2000-01-04      A
4    2000-01-04      B
5    2000-01-04      C
6    2000-01-05      A
7    2000-01-05      B 
8    2000-01-05      C

任何帮助都会很棒!

最佳答案

您可以连接根据输入列表中的每个值构建的数据框:

L = ['A', 'B', 'C']
dates = pd.date_range(start='2000-1-1', end='2010-12-31', freq='B')

df = pd.concat((pd.DataFrame({'date': dates}).assign(id=i) for i in L), ignore_index=True)
df = df.iloc[np.lexsort((df.index, df['date']))].reset_index(drop=True)

print(df)

           date id
0    2000-01-03  A
1    2000-01-03  B
2    2000-01-03  C
3    2000-01-04  A
4    2000-01-04  B
5    2000-01-04  C
...         ... ..

8604 2010-12-30  A
8605 2010-12-30  B
8606 2010-12-30  C
8607 2010-12-31  A
8608 2010-12-31  B
8609 2010-12-31  C

关于python - 在 DataFrame 中为一系列日期创建 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52798933/

相关文章:

Python 安装 'asyncio' 错误 : cl. exe 失败,退出状态 2

R根据日期设置绘图背景

python - Pandas 一次交换多个索引级别

python - 如何将每个 Parquet 行组读入单独的分区?

python - 在 Pandas DataFrame 列中有效地找到连续的条纹?

python - Pandas 根据另一列跟踪每月价格变化

java - java中日期验证失败

javascript - Typeof 错误 - 返回 NaN,即使两者都是数字

python - Django ManyToMany 字段从没有 'for' 的对象中获取所有值

python - 数据框上的多个条件