考虑下面的数据帧,
df = pd.DataFrame({'ID' : [1,2,3,4,5], 'Week' : ['WK1', 'WK2', 'WK3', 'WK4', 'WK5']})
print(df)
ID Week
0 1 WK1
1 2 WK2
2 3 WK3
3 4 WK4
4 5 WK5
在将周数加上1的同时循环和复制每一行的方法是什么,
所以基于前两个值,这是我想要的结果。
ID Week
0 1 WK1
1 1 WK2
2 1 WK3
3 1 WK4
4 1 WK5
5 2 WK1
6 2 WK2
7 2 WK3
8 2 WK4
9 2 WK5
最佳答案
这是笛卡尔积。运用理解力重建你的DataFrame
pd.DataFrame([(i, w) for i in df.ID for w in df.Week], columns=df.columns)
ID Week
0 1 WK1
1 1 WK2
2 1 WK3
3 1 WK4
4 1 WK5
5 2 WK1
6 2 WK2
7 2 WK3
8 2 WK4
9 2 WK5
10 3 WK1
11 3 WK2
12 3 WK3
13 3 WK4
14 3 WK5
15 4 WK1
16 4 WK2
17 4 WK3
18 4 WK4
19 4 WK5
20 5 WK1
21 5 WK2
22 5 WK3
23 5 WK4
24 5 WK5
等同于
# empty list
a = []
for i in df.ID:
for w in df.Week:
a.append((i, w))
pd.DataFrame(a, columns=df.columns)
关于python - 将 Pandas 中的行相乘并添加到迭代中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52446046/