gpt4 book ai didi

python - 有条件地合并列中单元格的内容

转载 作者:行者123 更新时间:2023-11-28 21:32:46 25 4
gpt4 key购买 nike

寻找一种 Pandas 方式来转动以下 df:

    name    desc
0 A a
1 NaN aa
2 NaN aaa
3 B b
4 NaN bb

进入:

    name    desc
0 A a
aa
aaa
3 B b
bb

# strings in desc are concat-ed together with end of line char

我正在考虑 itertuple 或 backfill+groupby 的一般方向,但这两种方法都需要一些杂耍。

这里是起点:

import pandas as pd
import numpy as np
nan = np.nan

df = pd.DataFrame(
{'name': ['A', nan, nan, 'B', nan],
'desc': ['a', 'aa', 'aaa', 'b', 'bb']}
)

最佳答案

您可以直接调用ffillagg,而无需使用applylambda

In [719]: df.ffill().groupby('name').agg('\n'.join).reset_index()
Out[719]:
name desc
0 A a\naa\naaa
1 B b\nbb

或者:

In [729]: df.ffill().groupby('name', as_index=False).agg({'desc': '\n'.join})
Out[729]:
name desc
0 A a\naa\naaa
1 B b\nbb

关于python - 有条件地合并列中单元格的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55800911/

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