我有 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/