当前位置: 首页 > 知识库问答 >
问题:

如何使用另一个已筛选的数据帧更新数据帧

司徒泰
2023-03-14

我有两个数据帧。我需要用第二列中的平均值更新第一列中的一列,并按索引分组。这里是示例df1(col1是索引)

      col2 col3
col1           
a        0    X
b        0    0
c        0    0
d        0    0

df2(col1是索引)

    col2  col3
col1            
a        1     0
a        3     0
d        2     0
d        4     0

我需要df2的col2(a=2,d=3)的平均值,并且只更新col3=X的行的df1

我试过这个

df1.loc[df1.col3=='X'].update(df2.groupby(df2.index),'col2'].mean().to_frame())

只有在我不使用loc的情况下,它才有效。

我试图得到的结果是df1(col1是索引)

    col2 col3
col1           
a        2    X
b        0    0
c        0    0
d        0    0

共有1个答案

庾才
2023-03-14

使用:

m=df2.groupby(df2.index).col2.mean()
df1.loc[df1.col3=='X','col2']=m
print(df1)
      col2 col3
col1           
a        2    X
b        0    0
c        0    0
d        0    0
 类似资料:
  • 我有一个关于熊猫以及正确索引和替换值的问题。 我有两个数据帧,df1和df2,具有相同的列(Col1、Col2、Col3和Col4)。 在df1中,我想用另一个值(比如100)替换与df2中其他列(Col1、Col2和Col3)的值匹配的行中Col4中的值。 生成的df1看起来像这样: 我试过这样的方法: 但是我得到了错误,我不确定这是否达到了我想要的。

  • 我有2个数据帧在apache火花。 df 1有显示编号和说明。。。数据看起来像 不显示描述a这是米奇b唐纳德来了c玛丽和乔治回家d玛丽和乔治进城 第二个数据帧有字符 人物 乔治 唐纳德 玛丽 米妮 我需要搜索节目描述,找出哪个节目的特征是哪个角色... 最终输出应该如下所示 乔治|c,d 唐纳德|b 玛丽|c. d 米妮|不显示 这些数据集经过精心设计,非常简单,但它表达了我试图实现的搜索功能。我

  • 我在Python中使用一个视频游戏的熊猫DataFrame,每个游戏都有一种类型。我正在尝试删除任何在DataFrame中出现次数少于一定次数的类型的视频游戏,但我不知道该怎么做。我确实发现了一个StackOverflow问题,这个问题似乎是相关的,但我根本无法破译这个解决方案(可能是因为我从未听说过R,而且我对函数编程的记忆充其量也很生疏)。 帮助?

  • 我有两个数据帧,它们的列名相同,但行数不同。第一个数据帧(a)看起来与此类似: 注:站点5、6、8和12故意丢失。 第二个数据帧(b)看起来像这样: 我想要实现的是: 在那里我注入(我肯定有一个更好的术语)数据帧b到数据帧a的数据,但是我想用零替换b中的任何NAs,并保持a中的NAs不变。 我发现并尝试了这个代码: 但它会带来NAs。我考虑先将NAs替换为零,但即使如此,它也会抹去我目前在数据帧a

  • 我想使用条件筛选数据集。我尝试使用.isin()函数,但在筛选np.array浮点列表时得到了一个空数据帧。这是我的密码 我在绝对差异btw公式列中搜索的值实际上是存在的,因为当我运行df[15:25]时,我得到了这个 那么,我如何使用.isin()函数或任何条件语句来实现它呢。目标是用0.1到0.9范围内的df['Absolute Diff btw formulas']值打印数据帧。谢谢

  • 若要用单个列过滤数据文件(DF),如果我们考虑有男性和女性的数据,我们可以: 问题1——但如果数据跨越多年,而我只想看到2014年的男性会怎样? 在其他语言中,我可能会这样做: (除非我想这样做并在新的dataframe对象中获取原始dataframe的子集) 问题2。我如何在一个循环中实现这一点,并为每个独特的年份和性别集(即:2013年男性、2013年女性、2014年男性和2014年女性)创建