gpt4 book ai didi

python - Pandas:在 df 中为包含列表值的分解列创建多行

转载 作者:行者123 更新时间:2023-12-01 02:28:45 26 4
gpt4 key购买 nike

我有一个数据框,这样

        A       B        C  
0 14 218 [{u'END_DT': None, u'ARBITRARY_ID':...
1 19 263 [{u'END_DT': None, u'ARBITRARY_ID':...

C 列是字典列表。我想分解列表,以便每个索引都有多行用于表示字典数量(列表中的元素)。有多种方法可以做到这一点,但我陷入了一个特定的阶段并且对解决它感到好奇。我已经像这样分解了 C 列:

df.C.apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('C')

所以我得到的是:

                C
0 {u'END_DT': None, u'ARBITRARY_ID': ...
0 {u'END_DT': None, u'ARBITRARY_ID': ...
0 {u'END_DT': None, u'ARBITRARY_ID': ...
0 {u'END_DT': None, u'ARBITRARY_ID': ...
0 {u'END_DT': None, u'ARBITRARY_ID': ...
1 {u'END_DT': None, u'ARBITRARY_ID': ...
1 {u'END_DT': 1475149637313, u'ARBITRARY_ID...
1 {u'END_DT': None, u'ARBITRARY_ID': ...
1 {u'END_DT': 1475149637313, u'ARBITRARY_ID...
2 {u'END_DT': None, u'ARBITRARY_ID': ...
2 {u'END_DT': None, u'ARBITRARY_ID': ...

有什么方法可以将其加入到我的主 df 中,看看索引是否匹配。

最佳答案

首先通过drop删除原始列C ,然后 join最后reset_index对于唯一的索引:

a = df.C.apply(pd.Series).stack().reset_index(level=1, drop=True).to_frame('C')
df = df.drop('C', axis=1).join(a).reset_index(drop=True)

a 系列的更快替代方案:

a = pd.DataFrame(df.C.values.tolist()).stack().reset_index(level=1, drop=True).to_frame('C')

关于python - Pandas:在 df 中为包含列表值的分解列创建多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078455/

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