我正在使用.csv格式的数据,并希望将所有空单元格设置为空字符串的值。
我面临的问题是这些文件已被不同环境中的几个人操纵,因此这些单元格中存在各种不同的垃圾值,例如:
' '
'NaN'
'nan'
'\n'
' '
等等。
我正在寻找一种标准方法来识别所有这些类型的垃圾值。"
答案 0 :(得分:4)
使用.strip()删除空格,然后检查该值是否是您要忽略的值:
if value.strip() in ['', 'NaN', 'nan']:
# ignore this value
或者,使其不区分大小写:
if value.strip().lower() in ['', 'nan']:
# ignore this value
答案 1 :(得分:2)
您可以使用isspace
函数来消除' '
和'\n'
等空格值,但不会处理'NaN'
或'nan'
等值。没有真正标准的方法来处理这些,所以除了使用isspace
之外,我还会创建一个黑名单,例如:
blacklist = ['NaN', 'nan'] # add more as needed
然后使用isspace()
和blacklist
来过滤掉不需要的值。
答案 2 :(得分:0)
您可以将csv读入Pandas DataFrame,然后使用DataFrame.fillna()
。
答案 3 :(得分:0)
我认为pandas.replace对您的问题来说是个不错的选择。
以下是一些示例代码:
import pandas as pd
# sample data
dic = {'a':['NAN', "", "NaN"], 'b':["", "nan", '\n'], 'c':[1,'2','3']}
df = pd.DataFrame(dic)
replace_list = ['NaN', '', 'nan', '\n']
df_clean = df.replace(replace_list, '')
df_clean
您可以将csv数据导入Pandas并执行相同的操作。
希望它有所帮助。