熊猫:分组并为所有其他行分配来自单个特定行和列的值

约翰·斯塔德

Key鉴于Type等于B并将结果分配给each ,我如何获得 each 的值A我需要将此逻辑应用于具有许多不同组的大型数据框。

df = pd.DataFrame({'Key': [1, 2, 3, 4, 5],
                   'Group': ['Z', 'Z', 'Z', 'Z', 'Z'],
                   'Type': ['A', 'A', 'B', 'A', 'A'],
                   'Flag': [0, 0, 1, 0, 0]
                   })

预期结果:

expected = pd.DataFrame({'Key': [1, 2, 3, 4, 5],
                         'Group': ['Z', 'Z', 'Z', 'Z', 'Z'],
                   'Type': ['A', 'A', 'B', 'A', 'A',],
                   'parentKey': [3, 3, np.nan, 3, 3],
                   'Flag': [0, 0, 1, 0, 0]})

我一直在玩,transform但我很困惑,没有靠近。

李志

合并更容易:

df = pd.DataFrame({'Key': [1, 2, 3, 4, 5],
                   'Group': ['Z', 'Z', 'Z', 'Z', 'Z'],
                   'Type': ['A', 'A', 'B', 'A', 'A'],
                   'Flag': [0, 0, 1, 0, 0]
                   })
df_parent = df.loc[df['Type'] == 'B', ['Key', "Group"]].rename(columns={'Key':'parentKey'})
pd.concat([df[df['Type'] != 'B'].merge(df_parent, on = 'Group', how = 'left'), df.loc[df['Type'] == 'B']], ignore_index=True)
    Key Group   Type    Flag    parentKey
0   1   Z       A       0       3.0
1   2   Z       A       0       3.0
2   4   Z       A       0       3.0
3   5   Z       A       0       3.0
4   3   Z       B       1       NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫创建列(从其他行分配值)

熊猫:查找其中特定列不是NA但所有其他列都是的行

熊猫数据框查找存在于其他列的所有可能值的行

如何将数据框行合并为单个行,并为每一列浓缩所有行值?

熊猫-如果匹配条件和其他列中定义的时间范围,则将值分配给行

迭代一个 numpy 矩阵,并为它的行分配来自其他数据帧和 numpy 数组的信息

当按其他列分组时,如何选择特定列中具有非唯一值的行?

熊猫 | 选择组中的所有行和特定列

熊猫分组依据:包括所有行,甚至包括具有空列值的行

熊猫-包括所有列和行对值

熊猫-根据其他列的值从特定列中选择行值

熊猫按列值分组(所有值均小于特定数字),并将组号分配为新列

如何按列分组而不考虑其他列并返回所有相应的行?

使用熊猫查找与其他行具有相同(月和日)值的行

熊猫:如何按一列分组并显示每组所有其他列的唯一值计数?

熊猫循环一个数据框并将所有行与其他DF行进行比较并分配一个值

熊猫查找满足特定条件的每个组中的行的索引,并为这些行分配值

根据其他列值返回具有相同列值的所有行

僅保留特定列的所有行中的字母 - 刪除所有其他字符

熊猫数据框通过比较所有其他行来创建新列

通过连接 subid 值和其他列名,从分组行扩展/创建 Pandas 列

如何根据行中的特定值和熊猫中的另一列对行进行分组?

分组优先于MySQL中其他行的列值

如何替换熊猫数据框中单个行和特定列的值

为缺少的列值添加一行,所有其他列值都为 NaN

将熊猫中特定列的所有行值相除,以使其行总和为1

筛选所有行的特定条件,并为每列只返回一行具有相同值的条件

如果列和行的值是空的或空白,则将其填充为其他特定列的值

熊猫根据其他两列的值复制和编辑“ n”行