输入数据框
+-------------------------------+
|ID Owns_car owns_bike|
+-------------------------------+
| 1 1 0 |
| 5 1 0 |
| 7 0 1 |
| 1 1 0 |
| 4 1 0 |
| 5 0 1 |
| 7 0 1 |
+-------------------------------+
Expected Output:
+------------------------------+
|ID Owns_car owns_bike|
+------------------------------+
| 1 1 0 |
| 5 1 1 |
| 7 0 1 |
| 4 1 0 |
+------------------------------+
按 ID 分组,然后为其他列选择值“1”而不是 0。检查给定 ID 的人是否拥有汽车和自行车
答案 0 :(得分:2)
您可以在 groupby 之后使用 'max' 来选择最大值(1 大于 0)
telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String phoneNumber) {
switch (state){
case TelephonyManager.CALL_STATE_OFFHOOK:
case TelephonyManager.CALL_STATE_RINGING:
if(mediaPlayer != null){
if(isPlaying()) {
pause();
showNotification(R.drawable.ic_play);
isCallOngoing = true;
}
}
break;
case TelephonyManager.CALL_STATE_IDLE:
if(mediaPlayer != null){
if(!isPlaying()) {
if(!sender.equals("system")) {
start();
showNotification(R.drawable.ic_pause);
}
isCallOngoing = false;
}
}
break;
}
super.onCallStateChanged(state, phoneNumber);
}
};
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
答案 1 :(得分:1)
将 transform
与 max
一起使用,然后通过 ID
删除重复项
df[['Owns_car', 'owns_bike']] = df.groupby('ID')[['Owns_car', 'owns_bike']].transform('max')
df = df.drop_duplicates('ID')