如何在一半信息丢失的大熊猫中丢行

时间:2020-04-17 10:36:51

标签: python python-3.x pandas

我有一些数据要删除某些行,但是其中一半信息丢失。

Employee_name
employee: ahmad
employee: ali
employee:
employee: abc
employee: 

我要删除所有缺少姓名的员工记录。

4 个答案:

答案 0 :(得分:1)

df.loc[df.Employee_name.str.strip().str.strip('employee:').ne('')]

答案 1 :(得分:0)

尝试添加:

df = df.replace('', np.nan)

根据{em> jezrael 在Pandas: remove rows with missing data

中的建议

答案 2 :(得分:0)

另一种方式 数据

import pandas as pd
df=pd.DataFrame({'Employee_name':
['employee: ahmad',
'employee: ali',
'employee:',
'employee: abc',
'employee:'] })
df

在:之后提取字符串,并删除NaN

df['Employee']=df['Employee_name'].str.extract(r'(?<=\:)(\s+[a-z]+)')
df.dropna()

正则表达式说明 (?<=X)(Y)如果X在Y之前,则获取Y X: Yspace \s,后跟small alphabets [a-z]+文字或空格

输出

enter image description here

答案 3 :(得分:0)

有多种方法可以实现,您可以按照建议的here

通过以下命令进行操作
data = data[data.employee != '']

另一种方法如下:

import pandas as pd 
data = pd.DataFrame( {'employee' :  ['Ali', '', 'Amed', '', '', 'abc']}, columns = ['employee'])
delRows = data[ data['employee'] == '' ].index
data.drop(delRows , inplace=True)
data

输出为:

    employee
0   Ali
2   Amed
5   abc