К сожалению, встроенного метода не существует, так как вам нужно будет построить декартово произведение этих DataFrame
, проверьте причудливое объяснение слияния фреймов данных в pandas
Но для Ваша конкретная c проблема, попробуйте это:
import pandas as pd
import numpy as np
df1 = pd.DataFrame(columns=['Entity', 'Account'])
df1.Entity = ['Entity1', 'Entity1']
df1.Account = ['Sales', 'Cost']
df2 = pd.DataFrame(columns=['Region'])
df2.Region = ['North America', 'Europa', 'Asia']
def cartesian_product_simplified(left, right):
la, lb = len(left), len(right)
ia2, ib2 = np.broadcast_arrays(*np.ogrid[:la,:lb])
return pd.DataFrame(
np.column_stack([left.values[ia2.ravel()], right.values[ib2.ravel()]]))
resultdf = cartesian_product_simplified(df1, df2)
print(resultdf)
вывод:
0 1 2
0 Entity1 Sales North America
1 Entity1 Sales Europa
2 Entity1 Sales Asia
3 Entity1 Cost North America
4 Entity1 Cost Europa
5 Entity1 Cost Asia
, как и ожидалось.
Кстати, укажите следующий кадр данных как код, а не как скриншот или даже как ссылка. Это помогает сэкономить время (пожалуйста, отметьте как спросить )