【问题标题】:Modify dataframe with a given condition使用给定条件修改数据框
【发布时间】:2022-12-12 15:58:40
【问题描述】:
col1 col2 col3
A1 data 1
Val B data 2 data 6
Val B data 3 data
A2 data 4 data
Val B data 5 data 7

在第一列 (col1) 中,如果找到 ValB,就在以“A”开头的单元格下方,用上面的单元格元素(以 A 开头)替换唯一的 ValB 单元格,保留行中的其他值ValB。如果其他“Val B”行不在以 A 开头的单元格下方,则忽略它们。

col1 col2 col3
A1 data 2 data 6
A2 data 5 data 7

结果

我想要这样的结果。使用蟒蛇

【问题讨论】:

  • 一个问题 - 在 Astartswith 行测试 Val B 值之后是否有必要?

标签: python pandas dataframe


【解决方案1】:

利用:

df = df.shift(-1)[df['col1'].str.startswith('A')].assign(col1 = df['col1'])
print (df)
  col1    col2    col3
0   A1  data 2  data 6
3   A2  data 5  data 7

或者:

df['col1'] = df['col1'].shift()
df = df[df['col1'].str.startswith('A', na=False)]
print (df)
  col1    col2    col3
1   A1  data 2  data 6
4   A2  data 5  data 7

【讨论】:

  • 有效!非常感谢@jezrael
猜你喜欢
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
  • 2020-02-09
  • 2017-11-13
  • 2021-12-01
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
相关资源
最近更新 更多