【发布时间】:2021-01-10 07:52:49
【问题描述】:
我有两个 DataFrame:
fuels = pd.DataFrame({'Fuel_Type':['Gasoline', 'Diesel', 'E85']})
years = pd.DataFrame()
years['Year_Model'] = range(2012, 2041)
我想要的输出是一个新的数据框,它将这两个数据框组合为两列,但对于“年”中的每个值,对于“燃料”中的每种独特燃料类型重复它。
换句话说,每个不同的年份应该有 3 次重复,每种燃料都应该重复一次。
我可以在 R 中非常简单地做到这一点:
df <- merge(
data.frame(years = c(2012:2040)),
data.frame(fuels = c("Gasoline", "Diesel", "E85")),
allow.cartesian = T)
我查看了类似问题的答案,例如:
Create all possible combinations of multiple columns in a Pandas DataFrame
Performant cartesian product (CROSS JOIN) with pandas
但是,要么我似乎无法将答案的代码应用于我自己的数据,要么答案太复杂以至于我无法理解(因为我对 Python 还很陌生)。
有没有一种很好且“易于理解”的方法?
【问题讨论】:
标签: python pandas dataframe join spyder