我对熊猫来说是全新的,所以希望这个问题不是太新鲜了。
我们说我有以下数据:
feature1 feature2 feature3 label
a 2 3 1
b 2 3 1
c 2 3 0
在这种情况下,我希望将feature2和feature3单独匹配到标签。在这种情况下,Feature1只是每行的唯一ID,在这种情况下没有帮助(最有可能的是,我最终会删除此功能)
所以我最终想要的是以下因为我将使用模式标签。
feature1 feature2 feature3 label
a 2 3 1
从另一个stackoverflow帖子,我使用此代码:
processed_data = raw_data.groupby(['feature2','feature3']).agg(lambda
x:x.value_counts().index[0]).reset_index()
这是正确的方法吗?我已经检查了几个数据点并且它似乎是正确的,但是基于value_counts()doc,我并不完全相信这是我想做的事情。另外,当我查看我的processed_data时,我会看到一个feature1 = x,它对应一行,所以看起来更像是这个代码只选择了一行而不是选择模式。
谢谢!
答案 0 :(得分:1)
我想是的,这是正确的。您还可以指定列<form>
Enter Username:<br>
<input type="text" id="usernameEn" name="username"><br>
<button id="btnGet">Get</button>
</form>
<br><br>
<form>
Username:<br>
<input type="text" id="username" name="username"><br>
Email:<br>
<input type="text" id="email" name="email"><br><br>
Password:<br>
<input type="text" id="password" name="password"><br><br>
</form>
<script type="text/javascript">
$(document).ready(function()
{
$("#btnGet").click(function(event)
{
event.preventDefault();
$.ajax({
type: 'GET',
url: "http://localhost:8080/WebServiceTest2/webresources/users/get/" + $('#usernameEn').val(),
dataType: "json",
success: function(data) {
console.log(data);
var userDetails = data;
renderDetails(userDetails);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus);
}
});
});
});
function renderDetails(data)
{
$('#username').val(data.username);
$('#email').val(data.email);
$('#password').val(data.password);
};
</script>
:
label
另一种解决方案:
processed_data = (df.groupby(['feature2','feature3'])['label']
.agg(lambda x:x.value_counts().index[0])
.reset_index())
但是,如果想要processed_data = (df.groupby(['feature2','feature3'])['label']
.agg(lambda x:x.mode())
.reset_index())
print (processed_data)
feature2 feature3 label
0 2 3 1
列的汇总模式和label
列的first
值,请使用:
feature1