在Python中压缩大表最有效的方法是什么

2024-09-27 02:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在单元格中压缩一些重复的字段值

enter image description here

SFN编号将是唯一的,相关值将压缩在单元格中。例如,我将为1008-12创建一行,PermitNo将为[32453246],Elevation将为[11001000],Year将为[2016,2014]等等。我只希望每个SFN具有唯一的值,但顺序不同

我想到的最好的主意是为每个要压缩的字段创建字典,使用for循环遍历行,然后将字典写回一个新表

这是一个好方法吗?有没有更好的方法,比如对象收集、点头等?我指的是空间和时间的效率。我有100多万行。我想我的记忆力还不错,但这需要一些时间


Tags: 对象方法for字典顺序时间空间year
2条回答

可以使用python集进行聚合:

df.groupby('col1', as_index=False).agg(set)

以下是一个虚拟示例,因为您没有以文本形式提供数据集:

输入:

  col1 col2  col3
0    A    a     0
1    A    b     1
2    A    a     2
3    B    b     1
4    B    a     2
5    B    d     1
6    C    a     0
7    C    c     1
8    C    b     0

输出:

  col1       col2       col3
0    A     {b, a}  {0, 1, 2}
1    B  {d, b, a}     {1, 2}
2    C  {b, a, c}     {0, 1}

你很可能会想用熊猫来做这件事,因为这就是它建造的目的

import pandas as pd
df = pd.read_csv("/path/to/your/data.csv")
df = df.groupby('SFN').agg(set).reset_index()

我认为这应该适用于您的示例,但由于您没有提供数据,我没有对其进行测试

相关问题 更多 >

    热门问题