通过熊猫过滤特定列的数据

时间:2020-05-27 15:26:09

标签: python python-3.x pandas numpy

清理YrsExp列
该列可以包含许多脏值。
清理后,所有此列应包含一个代表年数的数字。
例如,任何大于10的年份都应替换为10,
并且以月为单位的任何值都应替换为0。

此列可以包含以下值:

['7 MONTH' '5 MONTHS' nan '2 YEARS' '1 YEAR' '6 MONTHS' '3 YEARS'
 '2 MONTHS' '5 YEAR' '7 MONTHS' '3 YEAR' '2 YEAR' '6 YEARS' '7 YEARS'
 '4 MONTHS' '4' '6' '7' '2' '8' '15' '5' '10 YEAR' '8 year' '25 YEARS' '3'
 '1' '1YEAR' '5 YEARS' '1 YERS' '06 MONTHS' '05 YEARS' '03 YEARS'
 '04 MONTHS' '02 YEARS' '03 MONTHS' '02 MONTHS' '01 YEARS' '4 YEARS' '10'
 '13' '3YEAR' '6YRS.' '5YRS.' '4YRS.' '7YRS.' '10YRS.' '9YRS.' '3 MOTH'
 '5 MONTH' '20' '6 YEAR' '33' '18' '11' '4 YEAR' '6 Month' '2 MONTH'
 '15 YEAR' '25' '40' '19' '27' '7 YEAR' '17 YEAR' '8 YEAR' '9 YEAR'
 '15 YEARS' '3 MONTH' '11 MONTHS' '6 MONTH' '11 YEARS' '10 YEARS'
 '12 YEARS' '8 MONTH' '9' '30' '12' '4 MONTH' '5 YERS' '3साल' '10साल'
 '1साल' '7साल' '5साल' '3 माह' '2 माह' '3 साल' '2 साल' '4साल' '2साल'
 '18साल' '30साल' '11साल' '40साल' '12साल' '6माह' '3माह' '13साल' '8साल'
 '3 वर्ष' '10 वर्ष' '8 माह' '7 वर्ष' '9वर्श' '3 बर्ष' '5 वर्ष' '5 माह'
 '8 वर्ष' '4 वर्ष' '2 वर्ष' '1 वर्ष' '6 माह' '4माह' '5 साल' '25 साल'
 '9 साल' '5माह' '6साल' '4Y' '20 YEARS' '40 YEAR' '5Y' '12 YEAR' '2MONTHS'
 '9o"kZ' '5o"kZ' '3o"kZ' '20o"kZ' '25o"kZ' '6MONTH' '10YEARS' '2YRS.'
 '2 YRS.' '2YRS' '1YRS' '8YRS' '2YEAR' '3YEAT' '5 YS' '8 MONTHS' '4 YS'
 '6 MTH' '15 YS' '22' '14' '30YEAR' '28' '12 साल' '1 साल' '15 साल'
 '20 साल' '10 साल' '4 साल'] 

1 个答案:

答案 0 :(得分:0)

我认为regex可能是您在这里的朋友,Pandas支持:

玩类似的东西:

df['YrsExp'] = df['YrsExp'].extract(r'(\d+)\s*[y|Y]')

和.where()将值限制为10

df['YrsExp'] = df['YrsExp'].where(df < 11, 10)

然后,您可以使用.fillna()之类的值来填充与正则表达式不匹配的值:

df['YrsExp'] = df['YrsExp'].fillna(0)

所有这些都是Pandas内置的,因此请务必查看文档

相关问题