我有两个列表。一个叫做“区域”,另一个叫做“产品”。区域具有111个不同的值,产品具有1181个不同的值。我想从这两个列表中为产品和地区的每种组合创建一个数据框。
例如,我希望这种类型的数据框由两个列表组成。在这里,产品有2个值,区域有3个值。
Pdts Region
0 A X
1 B X
2 A Y
3 B Y
4 A Z
5 B Z
我想要这种类型的数据框,但是我的“区域”列表具有111个不同的值,“产品”列表具有1181个不同的值。我该如何实现?
答案 0 :(得分:1)
那是笛卡尔积
import pandas as pd
df1 = pd.DataFrame({'dataframe1': ['A', 'B']})
df2 = pd.DataFrame({'dataframe2': ['X', 'Y', 'Z']})
# Assign new columns to a DataFrame
# Merge with a database-style join
# Drop specified labels from rows or columns
product_df = df1.assign(key=1)\
.merge(df2.assign(key=1), on='key')\
.drop('key', 1)
print(product_df)
输出
dataframe1 dataframe2
0 A X
1 A Y
2 A Z
3 B X
4 B Y
5 B Z
答案 1 :(得分:0)
您可以执行以下操作:
import pandas as pd
d = {'Region': first_list, 'Products': second_list}
df = pd.DataFrame(data=d)
答案 2 :(得分:0)
是的意思:
>>> df['Region'] = ['X', 'Y', 'Z'] * (len(df) // 3)
>>> df
Pdts Region
0 A X
1 B Y
2 A Z
3 B X
4 A Y
5 B Z
>>>