如何解决如何将“ NA”值分配给python和pandas中的新列
我无法为数据帧分配NA值,并且在导出到_csv文件时显示为空。请提出建议。
查找数据_1的结果是:
for i in range(1,length):
Nnw_ = np.array(data_1.iloc[0:(data_1.iloc[0:,i]).count(),[i]])
rep = np.array(data_2.iloc[0:( data_2.iloc[0:,[i + 1]])
data_1.replace(Nnw,rep,inplace=True)
解决方法
如果您从 CSV 文件中读取一个数据框,则该数据框可能包含缺少的值 代表了为 NA 。因此,源文件可以包含例如:
data_1,data_2
red,Rose
white,NA
yelow,NA
orange,Orange
但是 read_csv 会将缺少的值转换为 np.nan ,并打印出来 为 NaN ,并且两列均为 object 类型。
自 Pandas 版本 1.0 起,可以转换此类列 来字符串键入:
df = df.convert_dtypes()
现在,当您运行df.info()
时,您将获得:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries,0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 data_1 4 non-null string
1 data_2 2 non-null string
dtypes: string(2)
memory usage: 192.0 bytes
(与 read_csv 之后的df.info()
的结果进行比较,
类型为 object )。
此DataFrame可以保存到 CSV 文件中,例如运行
df.to_csv('Output.csv',index=False,na_rep='NA')
,结果将是:
data_1,Orange
注意参数:
-
index=False
-省略索引的输出, -
na_rep='NA'
-提供 NA 值的可见表示 (默认表示形式是空字符串)。
编辑
如果要使用 NA 替换单个单元格,请运行例如:
df.iloc[3,1] = np.nan
不用担心您使用了 np.nan 。 Pandas 很聪明,可以转换 放入 NA 。
如果将值从 data_2 复制到 data_1 ,则没有问题。 请注意,在 string 类型的 convert_dtypes both 列区域之后, 因此 NA 值也可以复制到 data_1 。
如果您不希望将缺少的值另存为 NA ,只需删除 na_rep to_csv 中的参数,它们将另存为(默认)空字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。