使用类似df.groupby('ID').tail(N).
就我而言,组有不同的大小,我希望每个组保持相同的百分比而不是相同的行数。
例如,如果我们想为以下每个组(基于 ID)保留最后 50% 的行:
df = pd.DataFrame({'ID' : ['A','A','B','B','B','B','B','B'],
'value' : [1,2,10,11,12,13,14,15]})
Run Code Online (Sandbox Code Playgroud)
结果是:
pd.DataFrame({'ID' : ['A','A','B','B','B','B','B','B'],
'value' : [2,13,14,15]})
Run Code Online (Sandbox Code Playgroud)
我们怎样才能做到这一点?
编辑:如果 x% 不是 int,我们四舍五入到最小的更接近的 int。
我的原始数据框如下所示:
A B C
0.10 0.83 0.07
0.40 0.30 0.30
0.70 0.17 0.13
0.72 0.04 0.24
0.15 0.07 0.78
Run Code Online (Sandbox Code Playgroud)
我希望每一行都被二进制化:1将被分配给具有最高值的列,其余的将被设置为0,因此之前的数据帧将变为:
A B C
0 1 0
1 0 0
1 0 0
1 0 0
0 0 1
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点 ?
谢谢.
编辑:我理解一个特定的案例使我的问题含糊不清.我应该说,如果给定行的3列相等,我仍然希望获得[1 0 0]向量而不是[1 1 1]该行.
我有一本像这样的字典
d = {
'a' : {'L1':2, 'L2':5, 'L3':8},
'b' : {'L1':4, 'L2':7, 'L3':10},
'c' : {'L1':19, 'L2':0, 'L3':1},
}
Run Code Online (Sandbox Code Playgroud)
我想绘制一个图,其中x轴包含我的关键点,每个关键点具有3个对应于L1,L2和L3值的条形图。
总而言之,我的绘图将包含按键分组的9条(所以是3组3条)。
到目前为止,我所能做的就是将字典转换为数据框,然后对每个键使用seaborn的小节,但剩下3种不同的图。
是否可以将所有信息都包含在一个图中?
非常感谢。