gpt4 book ai didi

python - 在 pandas python 中将列值转换为行值时出现问题?

转载 作者:行者123 更新时间:2023-12-04 15:27:43 26 4
gpt4 key购买 nike

我有这样的数据框

County  section
A S1,S2
C ALL
B S1

预期输出

County    section
A S1
A S2
C S1
C S2
B S2

我的代码

df =df.assign(sections=df.sections.replace({'ALL':df.loc[df.sections.str.split(',').str.len().idxmax(),'sections']}).str.split(',')).explode('sections')

但是上面的代码只有在我们用逗号分隔多个部分 (S1,S2,S3) 时才有效。但是当我们有没有逗号分隔的部分值时不起作用,如下所示。如何使代码同时适用于两种情况

County  Section
A ALL
B S1
C ALL
D ALL

预期输出

  County  Section
A S1
B S1
C S1
D S1

代码应该在两种情况下都能工作

最佳答案

让我们更改replace部分

s=df[df.section.ne('ALL')]
toreplace=s.loc[s.section.str.split(',').str.len().idxmax(),'section']
df.assign(section=df.section.replace({'ALL':toreplace}).str.split(',')).explode('section')
County section
0 A S1
1 B S1
2 C S1
3 D S1

关于python - 在 pandas python 中将列值转换为行值时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61926399/

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