gpt4 book ai didi

python - Pandas 根据另一列中的连续值连接列中的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:10 25 4
gpt4 key购买 nike

我在 DataFrame col1 和 col2 中有两个列,我需要生成结果列。如图所示,每个 FD 都有一些应该填充在结果列中的相关 MS

enter image description here

dict_obj = {'col1': ['FD', 'MS', 'MS', 'FD', 'MS', 'MS', 'MS', 'FD', 'MS', 'MS'], 
'col2': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']}
df = pd.DataFrame(dict_obj)

最佳答案

您可以使用 GroupBy.agg,加入您的字符串并将其分配回“FD”行:

grp = (df.assign(col3=(df['col1'] == 'FD').cumsum())
.query("col1 == 'MS'")
.groupby('col3')['col2'].agg('|'.join))
df.loc[df['col1'] == 'FD', 'result'] = grp.values # grp.to_numpy(); pandas >= 0.24

df
col1 col2 result
0 FD A B|C
1 MS B NaN
2 MS C NaN
3 FD D E|F|G
4 MS E NaN
5 MS F NaN
6 MS G NaN
7 FD H I|J
8 MS I NaN
9 MS J NaN

关于python - Pandas 根据另一列中的连续值连接列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58153068/

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