如何将数据框转换为列表(带有重置索引的问题)

时间:2020-07-26 11:01:17

标签: python pandas dataframe pandas-groupby

我是熊猫新手,最近遇到了一个问题。我尝试在网上搜索但找不到很多。我有一个像这样的数据框

WeekDno   day
 2        Tue     5
 3        Wed    10
 5        Fri     5

我是这样做的

g =  l.groupby("WeekDno").day.value_counts()

现在,当我尝试将其转换为列表时

g =  l.groupby("WeekDno").day.value_counts().reset_index().values.tolist()

我得到一个错误

cannot insert day, already exists

我尝试删除reset_index(),但随后它给了我

[5, 10, 5]

但是我想要这样的东西

[[2,'Tue',5],[3,'Wed',10],[5,'Fri',5]]

1 个答案:

答案 0 :(得分:1)

使用Series.rename,然后使用DataFrame.reset_index + DataFrame.to_numpy

lst = g.rename(None).reset_index().to_numpy().tolist()

或也可以直接使用reset_index,但我们必须指定唯一名称

lst = g.reset_index(name='day_count').to_numpy().tolist()

使用zip的另一个可能的想法:

lst = [[*x, y] for x, y in zip(g.index, g)]

结果:

print(lst)
[[2, 'Tue', 5], [3, 'Wed', 10], [5, 'Fri', 5]]