我想下面的規則只適用於行與X類型
df['Test_flag'] = np.where(df.groupby('Category').Code.transform('nunique') > 1, 'T', '')
數據幀DF的
捎帶:
Code | Type | Category | Count
code1 Y A 89734
code1 Y A 239487
code2 Z B 298787
code3 Z B 87980
code4 Y C 098454
code5 X D 298787
code6 X D 87980
預期結果:
Code | Type | Category | Count | Test Flag
code1 Y A 89734
code1 Y A 239487
code2 Z B 298787
code3 Z B 87980
code4 Y C 098454
code5 X D 298787 T
code6 X D 87980 T
說明:
- A類具有相同的代碼,並且不鍵入X - >所以沒有標記T的值
- B類有不同的碼,但不爲類型X - >所以沒有標記T的值
- C類只有一個代碼,並且不鍵入X - >所以沒有標記T的值
- 類別d具有不同的代碼和爲類型X - >標記T的值
我噸裏德本
df['Test_flag'] = np.where((df['Type'] == 'X') &df.groupby('Category').Code.transform('nunique') > 1, 'T', '')
,我得到以下錯誤:
ValueError: operands could not be broadcast together with shapes (1,2199) (7620,)
'df.loc [df ['Type'] =='X','Test_flag'] = ...'? – Jakub
正確 - 一個類別「D」,但兩個不同的代碼;而類別A具有相同的代碼,類別B具有不同的代碼,但不是類型X – jeangelj