Python数据清洗之Dataframe中不同分隔符数据的清洗
2018-03-06 18:13
267 查看
发现问题
文本文件: test_file.txtid,电影名称,上映时间 001,《红海行动》,2018-02-16 002,《厉害了,我的国》,2018-03-02 003;《闺蜜2》;2018-03-02 004,《捉妖记2》,2018-02-16 005,《西游记女儿国》,2018-02-16
我们使用pd.read_csv读取文件的时候,默认分隔符为半角逗号,当然,我们也可以使用sep指定分隔符。
笔者在一次使用python处理数据时,遇到了不同分隔符的情况,大部分数据使用半角逗号作为分隔符,有几条数据使用半角分号作为分隔符,转换成dataframe之后,使用半角分号作为分隔符的数据就缩至一列,其他列为空。
处理思路
通过观察数据,我们发现大部分数据使用的是半角逗号作为分隔符,只有一条数据使用半角分号作为分隔符,使用pd.read_csv读取之后,该条数据堆在了第一列。我们可以先使用半角逗号分隔符读取大部分数据,然后通过循环,单独对每一条数据进行判断,找到不是以半角逗号作为分隔符的“异常数据”,使用半角分号对该数据进行切分,然后再使用pd.Series方法,设置index=data.columns,存入到原先的数据行。
文件&代码
Python程序文件: test.py# encoding: utf-8 import pandas as pd data = pd.read_csv('test_file.txt', sep=',') for i in range(len(data)): if len(data.iloc[i, 0]) > 3: # 通过判断字长,得到异常数据 # 通过半角分号切分数据,并设置列索引,将数据存入原行 data.iloc[i] = pd.Series(data.iloc[i, 0].split(';'), index=data.columns) print data
运行结果
id 电影名称 上映时间 0 001 《红海行动》 2018-02-16 1 002 《厉害了,我的国》 2018-03-02 2 003 《闺蜜2》 2018-03-02 3 004 《捉妖记2》 2018-02-16 4 005 《西游记女儿国》 2018-02-16
相关文章推荐
- 用python做数据分析4|pandas库介绍之DataFrame基本操作
- 用python做数据分析4|pandas库介绍之DataFrame基本操作 by 是蓝先生
- Python_pandas 两种主要的数据类型(Series、DataFrame)
- 用python做数据分析|pandas库:DataFrame基本操作
- 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作
- 利用python将所有时序NDVI影像转换为DataFrame数据并进行归一化
- 用python做数据分析4|pandas库介绍之DataFrame基本操作
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
- 量化投资与数据分析一: 如何用PYTHON下载WIND数据并转化成dataframe格式 分享
- Python - pandas DataFrame 数据选取,修改,切片
- python数据分析序列——DataFrame merge and apply
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
- 利用python进行数据分析之dataframe的常见操作
- python pandas中series与dataframe数据类型属性及操作基础
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
- Python数据科学之DataFrame的IO操作
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
- python 取出 Mongdb 中的数据 转化成DataFrame 然后用pandas处理数据
- python - pandas dataFrame merge 数据合并
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix