python - 将 pandas 中的行相乘并添加到迭代中

标签 python pandas

考虑以下数据框,

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 的最 Pythonic 方法是什么,

所以根据前两个值,这将是我想要的结果。

   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/

相关文章:

python - 使用 unittest 测试记录器消息

python-3.x - 如果两个字符串列是 Python 中另一个数据框中的一列的子字符串,则合并

python - <type 'exceptions.ImportError' > 当导入 pandas 和 sklearn 时

python - 如何使用Multiindex聚合到pandas列表中?

python - 导入错误 : No module named theano

python - 限制 seaborn distplot KDE 估计中 x 的范围

python - 搜索复合对象中的字段

python - 如何自动设置 pytest.param id?

python - 如何使用 Python Pandas 处理多级数据?

python - 如何创建一个字符串矩阵作为行列并在 python 中存储 CSV 中的计数?