Python 如何通过为第3列中的每个值赋值来扩展数据帧

Python 如何通过为第3列中的每个值赋值来扩展数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,假设我有一个数据帧: index day 0 21 1 2 2 7 我想给每一天分配3个值:0,1,2最后数据框应该是这样的: index day value 0 21 0 1 21 1 2 21 2 3 2 0 4 2 1 5 2 2 6 7 0 7

假设我有一个数据帧:

 index   day   
 0       21  
 1       2
 2       7
我想给每一天分配3个值:0,1,2最后数据框应该是这样的:

 index   day   value
 0       21      0
 1       21      1
 2       21      2
 3       2       0
 4       2       1
 5       2       2
 6       7       0
 7       7       1 
 8       7       2

有人知道吗?

您可以引入一个包含
(0,1,2)
-元组的列,然后
分解该列上的数据帧:

将熊猫作为pd导入
df=pd.DataFrame({'day':[21,2,7]})
df['value']=[(0,1,2)]*len(df)
df=df.explode('值')
df.index=范围(len(df))
打印(df)

您可以引入一个包含
(0,1,2)
-元组的列,然后
分解该列上的数据帧:

将熊猫作为pd导入
df=pd.DataFrame({'day':[21,2,7]})
df['value']=[(0,1,2)]*len(df)
df=df.explode('值')
df.index=范围(len(df))
打印(df)
尝试:

N=3
df=df.assign(value=[range(N)for uuu in range(len(df)))。分解(“value”)
打印(df)
印刷品:

索引日值
0      0   21     0
0      0   21     1
0      0   21     2
1      1    2     0
1      1    2     1
1      1    2     2
2      2    7     0
2      2    7     1
2      2    7     2
试试:

N=3
df=df.assign(value=[range(N)for uuu in range(len(df)))。分解(“value”)
打印(df)
印刷品:

索引日值
0      0   21     0
0      0   21     1
0      0   21     2
1      1    2     0
1      1    2     1
1      1    2     2
2      2    7     0
2      2    7     1
2      2    7     2
A选项:

df

   value  day
0      0   21
1      1   21
2      2   21
3      0    2
4      1    2
5      2    2
6      0    7
7      1    7
8      2    7
一个选择:

df

   value  day
0      0   21
1      1   21
2      2   21
3      0    2
4      1    2
5      2    2
6      0    7
7      1    7
8      2    7
   value  day
0      0   21
1      1   21
2      2   21
3      0    2
4      1    2
5      2    2
6      0    7
7      1    7
8      2    7