栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Upload Excel pandas处理NaN

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Upload Excel pandas处理NaN

Python pandas PostgreSQL处理NaN
    • 1、Excel表格
    • 2、使用python pandas读取Excel表格
    • 3、使用python pandas读取Excel表格

1、Excel表格

1、在Excel表格,当单元格输入的是“nan,Nan, NaN, naN, nAn”时

2、使用python pandas读取Excel表格
df = pd.read_excel(file_name, header=None, sheet_name=None)
sheet = df['sheet1']
sheet = sheet.fillna(sheet.notnull(), inplace=False)
# pandas预处理数据时,只把NaN,nan处理为False,如果是NAN,nAn...时,它会当成字符串的
3、使用python pandas读取Excel表格
# 模型models.py
class Student(models.Models)
	name = models.CharField(max_length=256, brank=Ture)
	number = models.IntegerField(null=Ture)
	score = models.IntegerField(null=Ture)
	total = models.IntegerField(null=Ture)
# 注意 
#	null  表示值不存在
#	brank 表示值为空(还是有值的,只是值为空)  
#	brack与null不存在相等关系

# 视图views.py (代码不全)
check_field = ["number","score","total"]
def check(student_dic):
	res = {}
    for key, value in student_dic.items():
        if value is False:
            value = None if key in check_field else ''
        else:
            if str(value).lower() == 'nan':
                value = None if key in check_field else ''
            if key in check_field:
                if type(value) == "str":
                    raise ValueError
        res[key] = value
    reture res 
keys = ["name","number","score","total"]
values = sheet.iloc[23, 0:3]
student_dic = dic(zip(keys, values))
student_obj = Student.objects.update(**check(student_dic))


# 当保存PostgreSQL数据库时,NaN不区分大小写,都认为是一个无穷大的数值,
# 而pandas是区分大小写的,所以当数据为NAN,满足数据库类型约束(NAN是一个数值),
# 但是pandas认为是字符串‘NAN’,不会处理NAN,最后数据库保存为NaN
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942286.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号