gpt4 book ai didi

python - 在没有多索引的情况下拆分 Pandas 系列

转载 作者:太空宇宙 更新时间:2023-11-04 03:57:36 25 4
gpt4 key购买 nike

我想采用具有单级索引的 Pandas 系列,并将该索引拆分为具有多列的数据框。例如,对于输入:

s = pd.Series(range(10,17), index=['a','a','b','b','c','c','c'])

s
a 10
a 11
b 12
b 13
c 14
c 15
c 16
dtype: int64

我想要的输出是:

    a    b    c
0 10 12 14
1 11 13 15
2 NaN NaN 16

我不能直接使用 unstack 命令,因为它需要一个多索引,而我只有一个单级索引。我尝试放入一个具有相同值的虚拟索引,但出现错误“ReshapeError:索引包含重复条目,无法 reshape ”。

我知道这有点不寻常,因为 1) pandas 不喜欢参差不齐的数组,所以需要填充,2) 索引需要任意重置,3) 我不能真正“初始化” "数据框,直到我知道最长的列有多长。但这似乎仍然是我应该能够以某种方式做的事情。我也考虑过通过 groupby 来做,但似乎没有像 grouped_df.values() 这样没有任何聚合函数的东西——可能是出于上述原因。

最佳答案

可以使用groupbyapplyreset_index创建多索引Series,然后调用unstack:

import pandas as pd
s = pd.Series(range(10,17), index=['a','a','b','b','c','c','c'])
df = s.groupby(level=0).apply(pd.Series.reset_index, drop=True).unstack(0)
print df

输出:

   a   b   c
0 10 12 14
1 11 13 15
2 NaN NaN 16

关于python - 在没有多索引的情况下拆分 Pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com