我有这个数据框
col = pd.MultiIndex.from_arrays([['Jan', 'Jan', 'Jan', 'Cost'],
['WK1', 'WK2', 'WK3', 'Cost']])
data = pd.DataFrame(np.random.randn(4, 4), columns=col)
data
我希望将Jan中的所有列与成本相乘,所以我尝试了这样的
data[['Jan']] * data[['Cost']]
但它充满了我的价值观。有没有办法可以做到这一点?
答案 0 :(得分:2)
我认为您需要删除[]
才能使用mul
选择DataFrame
:
print (data['one'].mul(data['two']))
或者:
print (data['one'] * data['two'])
也可以使用函数xs
:
print (data.xs('one', axis=1, level=0) * data.xs('two', axis=1, level=0))
答案 1 :(得分:0)
根据我的猜测,您无法使用多级索引访问列。这是你想要做的吗?
data[('one','a')] * data[('two','b')]
Out[1065]:
0 0.528834
1 -0.287322
2 -0.255244
3 0.871213
dtype: float64
答案 2 :(得分:0)
大家好,我做了一个循环回答我的问题
@Override
protected void populateViewHolder(final MessageViewHolder viewHolder, final Friends msg, int position) {
online = FirebaseDatabase.getInstance().getReference().child("online").child(msg.friend_id);
userListener = online.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Online online = dataSnapshot.getValue(Online.class);
if(online != null){
if (viewHolder.getDiff(online.timestamp) < 1){
viewHolder.donline.setVisibility(View.VISIBLE);
System.out.println("Is online");
} else {
viewHolder.donline.setVisibility(View.GONE);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
希望有人可以就我能改进的方式向我提供反馈