輸入另一個列值:給定一個列值返回基於一些條件
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