【发布时间】:2019-11-18 01:36:17
【问题描述】:
鉴于以下DataFrame,
df = pd.DataFrame({'Student':['Siri','Alexa'], 'Class':['6', '7'], 'Section':['A','B'], 'Teacher':['Ravi','Mark'], 'School':['C','D']})
我想返回一个包含所有列值的所有可能组合的表。我使用下面的代码实现了这一点
df['key'] = 1
df1 = pd.merge(df.loc[:, ['key','Student']], df.loc[:,['key','Class']], how='outer')
df2 = df1.merge(df.loc[:,['key','Section']], how='outer')
df3 = df2.merge(df.loc[:,['key','Teacher']], how='outer')
df4 = df3.merge(df.loc[:,['key','School']], how='outer')
df4.drop(columns='key', inplace=True)
完成这项工作的最简单方法是什么,因为我有 15 列,通过上述方法,会导致 14 次合并和低效代码?
【问题讨论】:
-
This answer 可能有助于向您展示如何将其设置为循环