如何根据Python条件编辑循环内列表和更新行

2024-06-17 11:34:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的数据框:我试图做的是循环并识别具有特定条件的行。条件是查找大于或等于10的值,其中Col1和Col2不相同

在确定这一点之后,我需要获取与该标准匹配的值,并用Col2中的值替换Col1中的值

之前:

Col1,  Col2,  Col3
entry  Test   10
entry  entry  10
entry  Phase  3
entry  Non_e  10
Non_e  Test   12
Test   Non    12
Phase  Non    12
Non    Pair   12

之后:(期望结果)

Col1,  Col2,  Col3
entry  Test   10  
entry  entry  10  
entry  Phase  3   
entry  Non_e  10  
entry  Test   12  
entry  Non    12
Phase  Non    12
Phase  Pair   12

任何帮助都将不胜感激


Tags: 数据test标准条件col2col3col1entry
1条回答
网友
1楼 · 发布于 2024-06-17 11:34:24
  • 根据评论-无需循环,加上循环是熊猫中的反模式
  • 只需要一个符合你条件的面具。然后可以将操作应用于符合条件的行
df = pd.read_csv(io.StringIO("""Col1  Col2  Col3
entry  Test   10
entry  entry  10
entry  Phase  3
entry  Non_e  10
Non_e  Test   12
Test   Non    12
Phase  Non    12
Non    Pair   12"""), sep="\s+")


cond = df["Col3"].ge(10) & (df["Col1"]!=df["Col2"])
df.loc[cond] = df.loc[cond].assign(Col1=df.loc[cond,"Col2"], Col2=df.loc[cond,"Col1"])

output

^{tb1}$

相关问题 更多 >