我有一个带有以下列和值的Pandas数据框
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
3 187.6 25.0 9.8
4 227.0 25.0 14.2
5 227.0 30.0 16.2
6 118.5 25.0 8.7
给定变量名df
的数据帧具有三个不同的值,分别是335.0
,187.6
,227.0
和118.5
;但是,值187.6
和118.5
仅出现一次。我想对数据框进行过滤,以使其摆脱仅出现一次的值,因此最终的数据框看起来像这样。
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
4 227.0 25.0 14.2
5 227.0 30.0 16.2
很明显,在这种简单情况下,我知道仅出现一次的值,并且我可以简单地使用过滤功能将其清除。但是,我想自动化该过程,以便Python可以确定哪些值仅出现一次并自动过滤它们。如何启用此功能?
答案 0 :(得分:4)
使用duplicated
df[df.Temp.duplicated(keep=False)]
Out[630]:
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
4 227.0 25.0 14.2
5 227.0 30.0 16.2
答案 1 :(得分:0)
尝试一下
<template>
<div>
<v-alert
:value="errorExists"
type="error"
transition="slide-y-reverse-transition"
v-model="errorMessage"
@click="removeErrors"
>
{{ "ERROR: " + this.errorType + " " + this.errorMessage }}
</v-alert>
</div>
</template>
<script>
export default {
computed: {
errorType: function() {
let value = this.$store.getters.errorType;
if (value != undefined && value != null) {
return this.$store.getters.errorType;
} else {
return "";
}
},
errorMessage: function() {
let value = this.$store.getters.errorMessage;
if (value != undefined && value != null) {
return this.$store.getters.errorMessage;
} else {
return "";
}
},
errorExists: function() {
let value = this.$store.getters.errorMessage;
if (value != undefined && value != null) {
return true;
} else {
return false;
}
}
},
/*
* =========== only changed here ==========
* when mounted, the component fires removeError() after 5000 ms.
*/
mounted() {
setTimeout(this.removeErrors, 5000)
}
// ========================================
methods: {
removeErrors(){
this.$store.dispatch('removeErrors')
console.log('remove errors')
}
},
data() {
return {
//
};
}
};
</script>
答案 2 :(得分:0)
dict
这是WeNYoBen做的相同事情的dict
方法
seen = {}
for t in df.Temp:
seen[t] = t in seen
df[df.Temp.map(seen)]
Temp Time grain_size
0 335.0 25.0 14.8
1 335.0 30.0 18.7
2 335.0 35.0 22.1
4 227.0 25.0 14.2
5 227.0 30.0 16.2