python – pandas concat用NaN填充非对齐索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – pandas concat用NaN填充非对齐索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1295字,纯文字阅读大概需要2分钟。
内容图文
问题
我连接了两个int类型的系列,我得到的数据帧是float类型.发生这种情况是因为系列的索引没有对齐,当连接发生时,大熊猫填补了NaN的空白.但是,NaN被认为是一个浮点数,不幸的是,我将所有的int都转换为浮点数.
题
我的问题是,我怎样才能填补其他不会将我的注册转换为浮点数的空白?
MCV
import pandas as pd
s1 = pd.Series([1], index=['A'])
s2 = pd.Series([1], index=['B'])
print "s1 type: {} | s2 type: {}\n".format(s1.dtype, s2.dtype)
df = pd.concat([s1, s2], axis=1)
print df, "\n"
print df.dtypes
打印:
s1 type: int64 | s2 type: int64
0 1
A 1.0 NaN
B NaN 1.0
0 float64
1 float64
dtype: object
解决方法:
首先,dtype转换是由于NaN不能用整数表示,所以选择float dtype.
其次,这将成为个人选择,当这种情况发生时该怎么做,这取决于你,没有正确的选择.
例如,我们可以使用任意值(如0或-1)来填充,然后我们可以使用astype(int)来回转类型:
In [21]:
df.fillna(0).astype(int)
Out[21]:
0 1
A 1 0
B 0 1
但这可能不是您想要的,您可能决定使用dropna删除这些行,但这可能意味着您丢失了有价值的信息,如果您正在进行某种机器学习或其他分析,这些信息可能是至关重要的.
因此,您可能决定要将这些列/行设置为最小值/最大值/平均值或中值,但如果列值对其他列具有依赖性,则会产生严重后果,例如我们将所有缺失值设置为最小值/ max然后该值会使预测模型偏差,因为它会丢失entropy/information,因为如果您有大量缺失值,那么您的数据会偏向最小/最大.在这种情况下,我个人认为工作正常.
内容总结
以上是互联网集市为您收集整理的python – pandas concat用NaN填充非对齐索引全部内容,希望文章能够帮你解决python – pandas concat用NaN填充非对齐索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。