输入另一个列值:给定一个列值返回基于一些条件
ColumnA:
A
A
B
B
C
C
输出
ColumnB:
0
1
0
1
0
1
的条件是:该塔B将是0,如果在A列中的值是第一次出现。否则B列将会是1.谢谢!在Python中使用熊猫。
输入另一个列值:给定一个列值返回基于一些条件
ColumnA:
A
A
B
B
C
C
输出
ColumnB:
0
1
0
1
0
1
的条件是:该塔B将是0,如果在A列中的值是第一次出现。否则B列将会是1.谢谢!在Python中使用熊猫。
使用duplicated
+ astype
面具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
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
使用适用于检查值曾经出现过。
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
所以......你到目前为止试过了什么? –
df.apply(lambda x:int(x.ColumnA in df.iloc [:x.name,0] .tolist()),axis = 1)尝试这一个。但是当数据量很大时,效率并不好。 – andrew