我正试图找到一种方法,在不消耗太多计算能力的情况下,将缺失值添加到Pandas Dataframe 中。我想达到的目标是。每周应该有所有三种类型的“N,O,D”。如果没有,我们需要填写是,并在修订中添加一个0。例如:2022年10月的第1周没有类型O和D,所以我需要想办法插入两行,下面两张图片显示了什么是输入数据,以及我试图实现的目标。
处理后,数据应如下所示:
下面是我写的代码:
n = df.loc[df["type"] == 'N']
d = df.loc[df["type"] == 'D']
o = df.loc[df["type"] == '0']
df_m=pd.merge(n, d, on=['wmy'], how='outer')
df_m2=pd.merge(df_m , o, on=['wmy'], how='outer')
cols = [col for col in df_m2.columns if 'type' in col]
for i in cols:
df_m2[i]=df_m2[i].dropna().unique()[0]
df_m2 = df_m2.fillna(0)
n1=df_m2[['wmy','type_x_x','rev_x_x']]
n1.rename(columns = {'type_x_x':'type','rev_x_x':'rev'}, inplace = True )
...
然后连接三个 Dataframe
2条答案
按热度按时间4nkexdtk1#
下面的代码得到了我想要的
6qqygrtg2#
尝试再创建一个df并应用do outter join: