python - DataFrames重复组合

标签 python pandas

我有 DataFrame df1 和 df2:

df1 = pd.DataFrame(['A1','A2']) 
    0
0  A1
1  A2
df2 = pd.DataFrame(pd.date_range('2016-01-01',periods = 2, freq = '1D'))
           0
0 2016-01-01
1 2016-01-02

我怎样才能得到这个数据框?

    0    1
0  A1  2016-01-01
1  A1  2016-01-02
2  A2  2016-01-01
3  A2  2016-01-02

最佳答案

您可以使用 itertools:

import itertools as it

pd.DataFrame(list(it.product(df1[0], df2[0])))
    0          1
0  A1 2016-01-01
1  A1 2016-01-02
2  A2 2016-01-01
3  A2 2016-01-02

itertools 返回一个生成器,因此在将其转换为DataFrame之前需要将其转换为列表

it.product 在两个可迭代对象之间进行所有组合,例如:

["".join(i) for i in it.product("ABC", "ABC")]
['AA', 'AB', 'AC', 'BA', 'BB', 'BC', 'CA', 'CB', 'CC']

关于python - DataFrames重复组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43068928/

相关文章:

python - 无法从 python2.7 中的 .csv 文件将记录插入数据库(使用 El Capitan )

python - 当需要不同的参数时,如何在类中使用 if/elif?

python - 如何使用 pandas 系列对 if 条件进行矢量化?

python - 用 pandas 数据框中列的最大值和最小值替换 np.inf 和 -np.inf 值?

python - 使用 yum 时如何修复 "Bad interpreter"错误?

python - 如何让 Minio-client(来自主机)与 Minio-server(docker 容器)通信?

python - 屏蔽 pandas DataFrame 的下三角部分

python - 从 pandas 数据帧生成边缘列表

python - 是否可以将 Pandas 日期时间转换为工作日/周末和季节?

python - 对列中的所有行对执行操作