问题背景
随便描述一下:大概就是如果你的dataframe只有一行数据,其中有一列是nan的,在这种情况下如果对nan列进行复制为None会出现将nan转换为None状态
Excel截图
![bc9f9c6810d105f29173cce34da3a728.png](https://i-blog.csdnimg.cn/blog_migrate/b1b2dc9373c1a6420638d06327b5babf.jpeg)
读取显示
import pandas as pdimport numpy as nppath = r"文件路径ext.xls"df = pd.read_excel(path,header=0)print(df)# 1 2 3 4#0 1a 2a 3a NaN
解决办法
import pandas as pdimport numpy as nppath = r"文件路径ext.xls"df = pd.read_excel(path,header=0)df = df.append(df.copy(deep=True))df.loc[:, [4]] = Noneero_col_count = sum(dict(df[1].value_counts()).values()) # 获取一共几行数据norepeat_df = df.drop_duplicates(subset=[1,2,3,4], keep='first') # 去除重复行,保保留第一次出现的行# 因为这种问题只会出现在只有一行数据的情况下,可以做一下判断有几行数据,# 然后将原df copy一份并合并到原df上,再对df的nan列进行赋值便可以正常赋值为nan了,# 之后再删除掉重复行便可
结语
这个bug是个紧急的问题,个人还是不太清楚发生这种现象到底是一个什么原理,因为比较急所以使用了目前这种解决办法,如果诸位有什么更好的办法或者不一样的点子,欢迎留言指导,万分感谢!!!
#python##pandas##excel##编程##科技新星创作营#
![7c0d0f0b1b40b65bdc82d8aadb3be227.png](https://i-blog.csdnimg.cn/blog_migrate/35e06e9f055bfe7a14611062f01285eb.jpeg)
![69d699d71add7447f140cf07d8505d29.png](https://i-blog.csdnimg.cn/blog_migrate/737a58affe31b57783e63037bfac0ae5.jpeg)
![b1bd86fca3d89672ec560ee69aec4d19.png](https://i-blog.csdnimg.cn/blog_migrate/339ef42f4cf17d1fefb5467ad7db8375.jpeg)