gpt4 book ai didi

python - python中的for循环连接2列的数据

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:22 29 4
gpt4 key购买 nike

我有一个包含 2 列(id 和 value)的巨大文件(20,000 行)。一些 ID 具有不同的值。我想编写一个 for 循环来为我提供 id 的所有值。

顺便说一下,我正在使用 pandas 并将数据导入为数据框。

例如: 文件是:

id  value 
a 2
a 3
b 2
c 4
b 5

我希望结果是这样的:

a 2,3
b 2,5
c 4

谢谢

最佳答案

使用groupby使用 apply join。显然,如果需要将数字列 value 转换为 string:

print (df.groupby('id')['value'].apply(lambda x: ','.join(x.astype(str))).reset_index())
id value
0 a 2,3
1 b 2,5
2 c 4

时间:

np.random.seed(123)
N = 1000000
L = list("ABCDEFGHIJKLMNO")
df = pd.DataFrame({'id':np.random.choice(L, N),
'value': np.random.randint(10, size=N)})
#[1000000 rows x 2 columns]
print (df)

In [84]: %timeit (df.groupby('id')['value'].apply(lambda x: ','.join(x.astype(str))).reset_index())
1 loop, best of 3: 1.46 s per loop

In [85]: %timeit (df.astype(str).groupby('id').value.apply(','.join).reset_index())
1 loop, best of 3: 1.83 s per loop

关于python - python中的for循环连接2列的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40860633/

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