python - 通过 Python 中定义的函数清理 DataFrame 中的凌乱字符串
问题描述
我有一个数据框:
AATest=pd.DataFrame({'IDNUM': ['1234\t','234', 'Spreedsheet ', '2345\t', '1257 ']})
AATest
我想将数据集清理为以下结果:
AATest=pd.DataFrame({'IDNUM': ['1234', '2345', '1257']})
AATest
所以我写了一个函数,但结果并没有像我预期的那样工作,有人可以帮忙解决吗?非常感谢~
IDNUM
0 1234\t
2 Spreedsheet
3 2345\t
4 1257
def removedeb(data):
if (data['IDNUM'].str.len()<4).any():
data.drop(data[data['IDNUM'].str.len()<4].index, inplace=True)
elif (data['IDNUM'].str.len()>4).any():
data=data['IDNUM'].str.strip('\t').str.strip().to_frame()
elif (data['IDNUM'].str.contains('Spreedsheet')).any():
data.drop(data[data['IDNUM'].str.contains('Spreedsheet')].index, inplace=True)
else: return data
removedeb(AATest)
解决方案
看看这是否适合你:
a = {'IDNUM': ['1234\t','234', 'Spreedsheet ', '2345\t', '1257 ']}
for key, value in a.items():
temp = []
for i in value:
try:
if len(i.strip()) != len(i):
temp.append(str(int(i.strip())))
except ValueError:
continue
a[key] = temp
print(a)
这个的输出是:{'IDNUM': ['1234', '2345', '1257']}
推荐阅读
- tableau-api - Tableau 计算 - 字符串
- android - Admob 横幅广告未在 android P 中加载
- c++ - 有人可以解释一下复制功能的作用吗?
- c# - 循环 devexpress 控件 WinForms
- delphi - 为什么 Delphi IBX TWideMemoField 转换 UTF8 字符串中的字节顺序以及如何避免它?
- kubernetes - Kubernetes kubeflow 扩展不起作用
- python - Tcl_AsyncDelete 错误。无法终止 Tk
- python - 在点之间画一条线以使用 python 进行比较、绘图和分析
- python - QCalendarWidget - 读取选定日期的背景颜色
- opencv - 前景的图像密度