【发布时间】:2018-11-02 21:59:59
【问题描述】:
我有一个包含数字和分类数据的数据框 (df1)。我正在创建一个类似于第一个数据框 df2 的数据库,这意味着它具有与 df1 相同的列名和 dtypes。但是,除了 df1 的名称和数据类型之外,我还想保留分类变量的类别,即使它们在创建时没有出现在 df2 上。
到目前为止,我发现的最简单的解决方案是遍历 df2 上的所有分类变量,添加 df1 的每个分类变量的类别。但是,我相信必须有一种比我提议的解决方案更快/更有效的解决方案。
df1 = pd.DataFrame({
'A' : pd.Categorical(list('bbeebbaa'), categories=['e','a','b'], ordered=True),
'B' : [1,2,1,2,2,1,2,1],
'C' : pd.Categorical(list('ddeeccaa'), categories=['e','a','d', 'c'], ordered=True)})
df2 = pd.DataFrame({
'A' : pd.Categorical(list('bbeebbbb'), categories=['e', 'b'], ordered=True),
'B' : [1,2,1,2,2,1,2,1],
'C' : pd.Categorical(list('cccccccc'), categories=['c'], ordered=True)})
categorical = ['A', 'B']
for var in categorical:
df2[var] = df2[var].cat.add_categories(df1[var].cat.categories)
【问题讨论】:
-
欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 On topic、how to ask 和 ... the perfect question 在此处申请。 StackOverflow 不是设计、编码、研究或教程资源。但是,如果您遵循您在网上找到的任何资源,进行诚实的编码尝试并遇到问题,那么您将有一个很好的示例可以发布。
-
简而言之,只需向我们展示一些示例输入,足以说明您的问题,以及到目前为止您可以解决它的代码。我们很乐意为您已经尝试过的代码提供帮助,但我们不会从第 1 阶段开始解决问题。