我有下表形式的数据

Name     Mas       Sce
   M      ( (87)    83
            (91)    
          (97) )    
   T        (77)    76
   R        (60)    32
   G        (95)    20
   M     ( (50)     89
            (50)    
          (99) )    

我的一些数据贯穿多行,例如M case .数据包含在括号内

我try 过删除重复的内容.当它是单行时就可以工作.但是,现在我作为一个小组有几排

import pandas as pd

d = {'Name': ['M', None, None, 'T', 'R', 'G', 'M', '', ''],
     'Mas': ['( (87)', '(91)', '(97) )', '(77)', '(60)', '(95)', '( (50)', '(50)', '(99) )'],
     'Sce': ['83', '', '', '76', '32', '20', '89', '', '']}
df = pd.DataFrame(d)
df['Name'] = df['Name'].ffill()
print(df)
df.drop_duplicates(subset='Name', keep='first', inplace=True)
print(df)

我想删除数据的重复出现.在这种情况下,第二个M

Name     Mas       Sce
   M      ( (87)    83
            (91)    
          (97) )    
   T        (77)    76
   R        (60)    32
   G        (95)    20

推荐答案

一个纯Pandas 俏皮话,有duplicatedmaskffill:

out = df[~df['Name'].duplicated()
          .mask(df['Name'].replace('', None).isna())
          .ffill().infer_objects(copy=False)]

输出:

   Name     Mas Sce
0     M  ( (87)  83
1  None    (91)    
2  None  (97) )    
3     T    (77)  76
4     R    (60)  32
5     G    (95)  20

Python相关问答推荐

如何将 map 数组组合到pyspark中每列的单个 map 中

按日期和组增量计算总价值

在Transformer中使用LabelEncoding的ML模型管道

PyQt5如何将pyuic 5生成的Python类添加到QStackedWidget中?

由于瓶颈,Python代码执行太慢-寻求性能优化

如何根据日期和时间将状态更新为已过期或活动?

根据另一列中的nan重置值后重新加权Pandas列

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

如何在polars(pythonapi)中解构嵌套 struct ?

如何使用数组的最小条目拆分数组

NP.round解算数据后NP.unique

两个pandas的平均值按元素的结果串接元素.为什么?

我如何使法国在 map 中完全透明的代码?

将tdqm与cx.Oracle查询集成

未知依赖项pin—1阻止conda安装""

python中的解释会在后台调用函数吗?

考虑到同一天和前2天的前2个数值,如何估算电力时间序列数据中的缺失值?

try 检索blob名称列表时出现错误填充错误""

从列表中获取n个元素,其中list [i][0]== value''

我对这个简单的异步者的例子有什么错误的理解吗?