首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缺失值的推算和除法

缺失值的推算和除法
EN

Stack Overflow用户
提问于 2020-10-11 18:19:10
回答 2查看 43关注 0票数 0

想象一个如下的数据集:

df =pd.DataFrame({‘联系人6M':4,7,20,5,6,0,1,19,’联系人3M':2,3,9,np.nan,np.nan,0,np.nan,9})

可以想象:“contacts 6M”列是最近6个月的联系人数,另一列是最近3个月的联系人数信息。因此,“联系人3M”包括另一列的部分信息。

我使用forward fill方法来计算缺少的值:

轴(df.ffill= 1,inplace=True)

我的问题是:在对数据集进行迭代时,如何将输入值除以2并对输入值进行舍入(请不要使用浮点数)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-11 19:16:12

通过这种方式可以很容易地完成:

代码语言:javascript
复制
df.iloc[df[df['Contacts 3M'].isna()].index,1]=df[df['Contacts 3M'].isna()]['Contacts 6M']/2

df['Contacts 3M']=df['Contacts 3M'].astype('int')
票数 1
EN

Stack Overflow用户

发布于 2020-10-11 18:38:05

您可以跟踪np.nan所在的索引,然后使用它进行任何您想要的算术运算-

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

df = pd.DataFrame({'Contacts 6M': [4, 7, 20, 5, 6, 0, 1, 19], 'Contacts 3M': [2, 3, 9, np.nan, np.nan, 0, np.nan, 9]}, dtype=np.int)
mask = df['Contacts 3M'].isna()

df = df.ffill(axis=1)  # for some weird reason, inplace=True was throwing 'NotImplementedError'
df['Contacts 3M'][mask] //= 2

print(df)

输出

代码语言:javascript
复制
   Contacts 6M  Contacts 3M
0            4            2
1            7            3
2           20            9
3            5            2
4            6            3
5            0            0
6            1            0
7           19            9
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64302912

复制
相关文章

相似问题

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