想象一个如下的数据集:
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并对输入值进行舍入(请不要使用浮点数)?
发布于 2020-10-11 19:16:12
通过这种方式可以很容易地完成:
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')发布于 2020-10-11 18:38:05
您可以跟踪np.nan所在的索引,然后使用它进行任何您想要的算术运算-
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)输出
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 9https://stackoverflow.com/questions/64302912
复制相似问题