我是熊猫新手,最近遇到了一个问题。我尝试在网上搜索但找不到很多。我有一个像这样的数据框
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]]
答案 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]]