我有一个像这样的熊猫数据帧
method method_par1 variantB_option x y
0 m1 variantA NaN 2 13
1 m1 variantA NaN 1 11
2 m2 NaN NaN 1 7
3 m2 NaN NaN 5 3
4 m1 variantB 25 10 9
5 m1 variantB 25 5 3
6 m1 variantB 15 54 39
7 m1 variantB 15 1 4
我想从中推断出不同的系列,来绘制y列和x列的值。此系列中的每一个都应该有前3列中的值的唯一组合之一(忽略索引)
所以我想要以下数据帧
df1
method method_par1 variantB_option x y
0 m1 variantA NaN 2 13
1 m1 variantA NaN 1 11
df2
method method_par1 variantB_option x y
2 m2 NaN NaN 1 7
3 m2 NaN NaN 5 3
df3
method method_par1 variantB_option x y
4 m1 variantB 25 10 9
5 m1 variantB 25 5 3
df4
method method_par1 variantB_option x y
6 m1 variantB 15 54 39
7 m1 variantB 15 1 4
第一列中每个列的可能值都是有限的,因此可能性的数量是有限的(但很大)
当然,我可以通过使用嵌套的for
循环和df[df['method'] == 'm1']
之类的连接来实现这一点,但是在我的实际(更大的)示例中,它变得非常混乱,我想知道是否有更干净的方法。也许用groupby
之类的东西
您可能需要
fillna
您可以使用
groupby
并对其进行迭代:如果您的
NaN
是实而不是数字,groupby
将只返回不带NaN
的三元组。在这种情况下,使用df.fillna()
作为您的首选值相关问题 更多 >
编程相关推荐