gpt4 book ai didi

python - Groupby pandas 在不同的部分

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

我有一个序列化数据集,其内容由空格分隔,例如 #a value1 #b value2 .... 其中带 # 的第一个元素是列名,第二个是值.我的问题出现在这个数据集的某些部分,这些部分有一个像这样的序列“#% value1 #% value2”这个特定的标记代表一个有多个值的列,这样,我需要一种机制来将这多行转换成一条。例如。原始数据=#a value1 #b value2 #% value3 #% value4 #a value5 #b value6 #% value7 #% value8

在我的拆分过程之后:

Key    value
#a. Value1
#b. Value2
#%. Value3
#%. Value4
#a. Value5
#b. Value6
#%. Value7
#%. Value8

但我需要这个:

Key    value
#a. Value1
#b. Value2
#%. Value3,Value4
#a. Value5
#b. Value6
#%. Value7,Value8

如何使用 pandas 执行此本地 groupby?一个细节是这是一个巨大的数据集 (~2Gb),我在一台性能良好但普通的 PC 上运行所有这些。

最佳答案

首先使用 shiftcumsum 创建帮助键,然后它成为常规的 groupbyjoin问题

s=(df.Key!=df.Key.shift()).cumsum()
df.groupby([df.Key,s]).value.apply(','.join).\
sort_index(level=1).\
reset_index(level=1,drop=True)
Out[788]:
Key
#a. Value1
#b. Value2
#%. Value3,Value4
#a. Value5
#b. Value6
#%. Value7,Value8
Name: value, dtype: object

关于python - Groupby pandas 在不同的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53597813/

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