python - 将两个 panda 数据帧相乘以重复数据一定次数

标签 python pandas

假设我有两个数据框,它们看起来像这样:

1/31
2/28
3/31

和:

black    dog
white    dog
orange   cat

我希望生成的数据框如下:

1/31   black   dog
1/31   white   dog
1/31   orange  cat
2/28   black   dog
2/28   white   dog
2/28   orange  cat
3/31   black   dog
3/31   white   dog
3/31   orange  cat

是否有一个简单的矩阵乘法可以将这两个 panda 数据帧相乘?我不熟悉这样做的语法,如果可以的话,我希望尽可能避免合并/for循环。

最佳答案

实现此目的的一种方法是使用 pd.merge:

df1.assign(key=1).merge(df2.assign(key=1), on='key').drop('key', axis=1)

输出:

    0_x     0_y    1
0  1/31   black  dog
1  1/31   white  dog
2  1/31  orange  cat
3  2/28   black  dog
4  2/28   white  dog
5  2/28  orange  cat
6  3/31   black  dog
7  3/31   white  dog
8  3/31  orange  cat

关于python - 将两个 panda 数据帧相乘以重复数据一定次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513558/

相关文章:

python - 有没有办法总结一个计数?

python - swfupload 和 django 上的 403 禁止错误

python - 关键字参数之后的位置参数和 * 参数之后的常规参数

python - 如何在 Odoo 报告中以印度卢比格式打印 amount_to_text。?

python-3.x - Pandas DataFrame.plot 未正确设置 xlim 和 ylim

Python 字典到 R session

python - Pandas - 按多列分组的移动平均线

python - 如何将 pandas 数据帧写入 Databricks dbfs/FileStore?

python - Pandas 删除重复的数据范围

python - 使用 pandas 从 timedelta-values 创建新的唯一 session ID