给定一个列值,根据某个条件返回另一个列值

2024-03-29 15:32:59 发布

您现在位置:Python中文网/ 问答频道 /正文

输入:

ColumnA:
A
A
B
B
C
C

输出

ColumnB:
0
1
0
1
0
1

条件是:如果A列中的值是第一次出现,则B列将为0。否则,B列将为1。谢谢!在Python中使用熊猫。你知道吗


Tags: 条件columnbcolumna
2条回答
df=pd.DataFrame({'ColumnA': {0: 'A', 1: 'A', 2: 'B', 3: 'B', 4: 'C', 5: 'C'}})

df
Out[284]: 
  ColumnA
0       A
1       A
2       B
3       B
4       C
5       C

使用apply检查该值以前是否出现过。你知道吗

df['ColumnB'] = df.apply(lambda x: int(x.ColumnA in df.iloc[:x.name,0].tolist()), axis=1)

df
Out[287]: 
  ColumnA  ColumnB
0       A        0
1       A        1
2       B        0
3       B        1
4       C        0
5       C        1

使用^{}+^{}掩码int

print (df.duplicated())
0    False
1     True
2     True
3    False
4     True
5    False
6     True
dtype: bool

df['ColumnB'] = df.duplicated().astype(int)
print (df)
  ColumnA  ColumnB
0       A        0
1       A        1
2       A        1
3       B        0
4       B        1
5       C        0
6       C        1

相关问题 更多 >