首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用np.nan (.)时区分空字符串、to_excel和None熊猫数据中心的功能?

如何在使用np.nan (.)时区分空字符串、to_excel和None熊猫数据中心的功能?
EN

Stack Overflow用户
提问于 2020-09-23 19:53:38
回答 2查看 630关注 0票数 2

在构建包含np.nanNone和空字符串('')值的Python3.8.3和Pandas1.0.4的数据框架之后

代码语言:javascript
复制
import pandas as pd
import numpy as np

df1 = pd.DataFrame({'b':None,'c':''},index=[0])
df2 = pd.DataFrame({'a':1,'b':1,'c':None},index=[0])
df = pd.concat([df1,df2], axis=0, sort=True)
print(df)

数据帧df看起来像

代码语言:javascript
复制
     a     b     c
0  NaN  None      
0  1.0     1  None

现在,我想使用to_excel()函数将这些值存储到Excel中。但是,在运行命令之后

代码语言:javascript
复制
df.to_excel('nan_none_empty.xlsx')

结果看起来就像

由于np.nanNone和空字符串('')是不可分离的。

可以使用选项''np.nanNone中分离空字符串( na_rep ),如下所示

代码语言:javascript
复制
df.to_excel('nan_none_empty2.xlsx',na_rep='?')

给出结果

但是,对于这个问题,为了能够在excel(.)函数导出中将np.nanNone分离开来,我似乎已经用完了np.nan

当将np.nanNone导出到df时,如何将它们巧妙地分开呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-23 20:08:53

如果您想要区分不同的空类型,最好的方法是在导出到Excel之前替换值。转换为字符串是确保不合并None、np.NaN、pd.NaT等的一种方法。

代码语言:javascript
复制
df1 = pd.DataFrame({'b':None,'c':''},index=[0])
df2 = pd.DataFrame({'a':1,'b':1,'c':None},index=[0])
df = pd.concat([df1,df2], axis=0, sort=True)

null_map = {'nan': '-',
            'None': '?'} # Add the string representation for other types you may need

df = df.applymap(lambda x:
                 null_map[str(x)]
                 if str(x) in null_map
                 else x)
df.to_excel('nan_none_empty2.xlsx')
票数 2
EN

Stack Overflow用户

发布于 2020-09-23 20:09:25

像这样怎么样?:

代码语言:javascript
复制
df = df.applymap(lambda x: str(x) if x in [None, ''] else x)
df.to_excel('nan_none_empty.xlsx',na_rep='np.nan')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64035342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档