Python 创建一个新列并根据其他两个列值填充它

泡菜

我有这个df:

ID 一个
1 40
1 0
2 60
2 60
3 0
3 30

我需要添加一个新列来指示每个 id 是否在新列中有两个值,如下所示:

ID 一个
1 40 1
1 0 1
2 60 2
2 60 2
3 0 1
3 30 1

我试过了,但它没有返回正确的值

df= pd.concat(g for _, g in df.groupby('ID') if len(g) > 1)
df= df[df['A'] != 0]
df= pd.concat(g for _, g in df.groupby('A') if len(g) > 1)
df['B'] = 2
纳维德

使用 groupby 对每个 ID 取大于 0 的值的计数,然后与原始 df 合并

df.merge(df[df['A'] > 0].groupby('ID').size().reset_index(name='count'), on='ID')
    ID  A   count
0   1   40  1
1   1   0   1
2   2   60  2
3   2   60  2
4   3   0   1
5   3   30  1

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python groupby - 根据其他列中的值创建一个新列

根据从python中其他两个字符串列应用的条件创建一个新列

根据其他两列中的值,用另一个数据中的值填充一个数据框中的新列?(Python /熊猫)

Python Pandas:根据其他两个列的值查找列的总和

如何根据python中其他多个列的名称创建一个列?

Python循环两个不同的dataFrames以创建一个新列

Python Pandas根据另一个列值创建新列

根据其他两个列是填充还是空填充一个新列

Python:比较两个成对的列表,并根据成员资格和值创建一个新列表

Python:根据其他列内容的第一个字符填充列

如果其他条件在python中在dataframe中创建一个新列

Python:根据其他两列中的值有条件地创建新列

Python Pandas:根据另一个数据框的类别值创建新列

在与python中的其他两个列绑定的两列中添加值(重复的值)

Python Dataframe - 根据现有列值的长度创建一个具有值的新列

如果在其他两个类中不存在新对象,如何在Python Django中创建一个新对象?

python pandas列以其他两个列值为条件

根据其他两个条件创建一个新列

pandas python根据一个或多个其他列的子集更新列A的子集

根据数据框中的2列提取信息并创建一个新列-Python

如何获取基于python中的两个类别的列的最后一个值?

python pandas获取列的最后一个值不同于其他值

在python中创建一个由变量名填充的新列

Python 系列 - 如果它介于其他两个系列的值之间(时间)

Python Pandas:根据其他列中的唯一标识符创建具有最小值的新列

python-3:如何创建一个新的pandas列作为另一列的两个连续行的减法?

R创建一个新列,该列的值取决于其他两个列的匹配情况

Python Pandas-如何解开具有两个值的数据透视表,每个值变成一个新列?

根据标签划分两个行值,并创建一个新列以填充计算值