python - 在 Pandas 中添加缺失的行

标签 python pandas

我有一个如下所示的数据框。

user cat  val
u1   cat1 1
u1   cat2 2
u1   cat3 3
u2   cat1 5
u3   cat4 4

并希望像这样改造它。
user cat  val(avg)
u1   cat1 1
u1   cat2 2
u1   cat3 3
u1   cat4 4
u2   cat1 5
u2   cat2 2
u2   cat3 3
u2   cat4 4
u3   cat1 3
u3   cat2 2
u3   cat3 3
u3   cat4 4

cat 右侧还有几个数字列,希望可以用 NA 填充;或者如果可能的话取平均值。

最佳答案

解决这个问题的一种方法,

l1=df['user'].unique().tolist()
l2=df['cat'].unique().tolist()
new_df =  pd.DataFrame(list(itertools.product(l1,l2))).rename(columns={0:'user',1:'cat'})
new_df=pd.merge(new_df,df,on=['user','cat'],how='left')

输出:
   user   cat  val
0    u1  cat1  1.0
1    u1  cat2  2.0
2    u1  cat3  3.0
3    u1  cat4  NaN
4    u2  cat1  5.0
5    u2  cat2  NaN
6    u2  cat3  NaN
7    u2  cat4  NaN
8    u3  cat1  NaN
9    u3  cat2  NaN
10   u3  cat3  NaN
11   u3  cat4  4.0

关于python - 在 Pandas 中添加缺失的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50947280/

相关文章:

python - 如何过滤字典以仅包含给定列表中的键?

python - 为什么我一直收到 bin/sh : 1 : : not found

python - pandas 对列值进行排序

python - 如何在Python中将函数应用于数据框中的所有列并以数据框的形式输出

python - Pandas 如何在不丢失列标题的情况下连接两个数据框

python - 如何计算 Pandas 数据框中每分钟出现的次数

python - 在 Pandas 中,df ['column' ] 和 df.column 有什么区别?

python - 具有非数字类型的 groupby/aggregate 数据框

python - 根据电子邮件的匹配值更新 Pandas Dataframe,但替换用户 ID

python - 在 selenium 网络驱动程序中如何选择正确的 iframe