gpt4 book ai didi

python - 在pandas中,按行值对column1进行分组,然后如何合并column2并找到其他colum3上的最小值?

转载 作者:行者123 更新时间:2023-12-01 09:14:19 25 4
gpt4 key购买 nike

嗨,我有这样的数据:

animal  mergewithcomma  find_min
lion 1,2,3 0
lion 3,4,5 1
lion 1,6,7 -1
tiger 1,2,3 2

并希望得到如下输出。

(1) 狮子在列的三行动物被分组

(2)列mergewithcomma合并在一起,用逗号分隔

(3)列find_min输出的是最小值

animal  mergewithcomma  find_min
lion 1,2,3,4,5,6,7 -1
tiger 1,2,3 2

我使用了下面的Python脚本:

import re
import sys
import pandas as pd
import numpy as np

df = sys.argv[1]
df = pd.read_csv(df, header = False, sep = '\t')

agg_func = {'find_min' : 'min', 'mergewithcomma' : 'sum'}
df_out = df.groupby(['animal'], as_index = False).aggregate(agg_func)

print(df_out)

但是,我的结果如下。我该如何解决这个问题?

animal  mergewithcomma  find_min
lion 1,2,33,4,51,6,7 -1
tiger 1,2,3 2

最佳答案

IIUC

af=lambda x : ','.join(sorted(set((','.join(x)).split(','))))
df.groupby('animal').agg({'mergewithcomma':af,'find_min':'min'})
Out[506]:
find_min mergewithcomma
animal
lion -1 1,2,3,4,5,6,7
tiger 2 1,2,3

关于python - 在pandas中,按行值对column1进行分组,然后如何合并column2并找到其他colum3上的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51391029/

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