我试图用每个组(groupby area)中的数字模式替换空值。 熊猫有没有更简单的方法
我已经通过循环方法完成了,这对于非常大的数据集是不推荐的
data = {'area':['abc', 'abc', 'abc', 'abc','bcd', 'bcd', 'bcd' ,
'cde','cde', 'cde', 'cde', 'cde'], 'number':[1, 2, 2, np.nan, 3, 3,
np.nan, 5, 5, 4, np.nan, np.nan]}
df = pd.DataFrame(data)
Hell = pd.DataFrame(df.groupby("area")['number'].agg(lambda
x:x.value_counts().index[0])).reset_index()
import math
for index in range(0,df.shape[0]):
if math.isnan(df['number'][index]):
for i in range(0,Hell.shape[0]):
if Hell['area'][i] == df['area'][index]:
df['number'][index] = Hell['number'][i]
使用^{} 和^{} 将匹配值替换为
area
:或者将您的解决方案与^{} 一起用于相同的序列,例如由聚合值填充的原始序列:
相关问题 更多 >
编程相关推荐