gpt4 book ai didi

python - 带有分隔符的Pandas groupby加入

转载 作者:行者123 更新时间:2023-12-03 21:01:39 25 4
gpt4 key购买 nike

我试图使用groupby对具有多个值的行进行分组。

col val
A Cat
A Tiger
B Ball
B Bat

import pandas as pd
df = pd.read_csv("Inputfile.txt", sep='\t')
group = df.groupby(['col'])['val'].sum()

我有
A CatTiger
B BallBat

我想引入一个定界符,以便我的输出看起来像
A Cat-Tiger
B Ball-Bat

我试过了,
group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))

这产生了,
A C-a-t-T-i-g-e-r
B B-a-l-l-B-a-t

这是什么问题?

谢谢,

美联社

最佳答案

或者,您可以通过以下方式进行操作:

In [48]: df.groupby('col')['val'].agg('-'.join)
Out[48]:
col
A Cat-Tiger
B Ball-Bat
Name: val, dtype: object

更新:来自评论的回答问题:
In [2]: df
Out[2]:
col val
0 A Cat
1 A Tiger
2 A Panda
3 B Ball
4 B Bat
5 B Mouse
6 B Egg

In [3]: df.groupby('col')['val'].agg('-'.join)
Out[3]:
col
A Cat-Tiger-Panda
B Ball-Bat-Mouse-Egg
Name: val, dtype: object

最后用于将索引或MultiIndex转换为列:
df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')

关于python - 带有分隔符的Pandas groupby加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44368537/

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