gpt4 book ai didi

python - 展开列条目并从 pandas 中的一行或多行添加值

转载 作者:行者123 更新时间:2023-11-28 20:30:54 24 4
gpt4 key购买 nike

我有一个包含具有相同含义的条目的数据框,我想让它们位于同一行(和列)中。我的模拟 df:

my = pd.DataFrame(
{'fruit': ['Apple', 'Banana', 'Pomme', 'aeble', 'Banan', 'Orange', 'Apelsin'],
'bites': [1, 2, 3, 1, 2, 3, 4]})

我希望它是什么:

enter image description here

我得到的最接近的是

my.loc['Apple'] +=my.loc['Pomme'] += my.loc['aeble']

但我想知道是否有更简单的方法。

最佳答案

如果你有一些 dict 将所有 fruit 值映射到一种语言,你可以使用 groupbymap使用聚合函数 joinsum:

d = {'Apple': 'Apple',
'Banana': 'Banana',
'Pomme': 'Apple',
'aeble': 'Apple',
'Banan': 'Banana',
'Orange': 'Orange',
'Apelsin': 'Orange'
}

my.groupby(my['fruit'].map(d)).agg({'fruit': lambda x: ', '.join(x),
'bites': 'sum'})

[输出]

                      fruit  bites
fruit
Apple Apple, Pomme, aeble 5
Banana Banana, Banan 4
Orange Orange, Apelsin 7

帮助生成映射 dict 的一种方法可能是使用 googletrans包裹:

from googletrans import Translator
translator = Translator()

d = {x.origin: x.text for x in translator.translate(my['fruit'].unique().tolist())}

[输出]

{'Apple': 'Apple',
'Banana': 'Banana',
'Pomme': 'Apple',
'aeble': 'aeble',
'Banan': 'Banana',
'Orange': 'Orange',
'Apelsin': 'Orange'}

如您所见,它并不完美,但会让您抢先一步,而不是完全手动创建。

关于python - 展开列条目并从 pandas 中的一行或多行添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56338209/

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