如何根据“标识符列”和熊猫数据框中的附加条件替换值?

gebo-aa

作为一些数据清理的一部分,我需要针对“年”和“ ID”的每个组合“对齐”“列A”中的值,具体取决于“年份”和“ ID的组合

我已经尝试过np.where()但只收到ValueError: Can only compare identically-labeled Series objects

这是一个简短的示例数据框:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1, 2007, 0], 
                       [2, 2008, 0], 
                       [2, 2009, 1], 
                       [3, 2007, 0], 
                       [4, 2010, 0], 
                       [4, 2011, 1], 
                       [4, 2011, 0]]), #I want to change this 0 to 1
             columns=['ID', 'Year', 'ColA'])

结果应如下所示:

result = pd.DataFrame(np.array([[1, 2007, 0], 
                       [2, 2008, 0], 
                       [2, 2009, 1], 
                       [3, 2007, 0], 
                       [4, 2010, 0], 
                       [4, 2011, 1], 
                       [4, 2011, 1]]),
             columns=['ID', 'Year', 'ColA'])
二凡

我们可以使用groupby.transformany然后我们得到一个结果,boolean因此,如果将其转换为intwith,astype我们将获得所需的结果:

m = df.groupby(['ID', 'Year'])['ColA'].transform(any).astype(int)
df['ColA'] = m
   ID  Year  ColA
0   1  2007     0
1   2  2008     0
2   2  2009     1
3   3  2007     0
4   4  2010     0
5   4  2011     1
6   4  2011     1

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据条件替换熊猫数据框列中的值

如何根据条件替换熊猫数据框中的值?

如果并附加条件熊猫数据框?

根据条件在熊猫数据框中添加新列,并替换不同列中的Nan值

根据熊猫中其他列的值添加具有唯一标识符的列

根据多种条件替换熊猫数据框中的值

熊猫根据条件替换数据框值

根据可变条件和唯一标识符将一列中的堆叠数据转置为行

在powerquery中根据列数据中的条件放置标识符

根据列的组合在数据框中创建唯一标识符

如何根据条件在熊猫数据框中的任何位置替换值?

如何根据条件用列名替换熊猫数据框中的值?

使用多张工作表中的唯一标识符查找和替换列中的值

如何根据共享列值替换熊猫数据框中的值?

如何根据条件替换熊猫数据框列中的单元格

如何根据函数替换熊猫数据框中的值

根据熊猫数据框中其他列的条件和值创建新列

如何根据熊猫数据框数据透视表中的条件获取列中的值?

根据通用标识符和数据帧中的特定列按比例划分行值

根据熊猫数据框中的条件为列分配值

熊猫数据框根据条件更改列中的值

使用熊猫数据框中具有匹配标识符值的行中的值进行计算

向R数据框中的同一列值添加唯一标识符

如何根据条件用NaN替换数据框列值?

根据条件替换数据框列中的值

根据条件替换数据框的列中的多个值

Pandas 数据框根据条件替换列中的值

如何根据熊猫中的条件替换列之间的值?

如何根据熊猫数据框中的条件移动列中的值