在pandas数据框中使用列表作为元素的最佳替代方法是什么?

时间:2018-03-20 12:57:38

标签: python pandas

我有一个数据框,其中天数作为索引,类别作为列,每个元素是一组与每一天相对应的项目。

我读到"将列表保留在一个框架中,虽然允许,但它根本没有效率":corresponding pandas-dev issue

我需要能够构建这些列表的列式联合和交叉点,并在查询中使用它们。

您认为什么是有效的替代方案?

1 个答案:

答案 0 :(得分:1)

我猜您的数据看起来像这样

enter image description here

如果您只是将数据融合到一天中代表单个项目类别的每一行,那么您可以将它用于任何类型的联合或交集 -

df1 = pd.melt(df, id_vars = 'Days', var_name = 'Category')
df1 = df1.set_index(['Days', 'Category'])['value'].apply(pd.Series).stack().reset_index().drop('level_2', axis=1)
df1.columns = ['Days', 'Category', 'Item']

上面的代码会将数据转换为 -

enter image description here

现在可以轻松用于任何类型的操作