嗨,我有这本字典在下面
str1 x y
a 1.0 -3.0
b 2.0 -2.5
str2: x y
a 3.0 -2.0
b 4.0 -1.5
str3: x y
a 5.0 -1.0
b 6.0 -0.5
我想要的结果是能够取消它的堆栈,这样我就得到了一个带有index=[str1,str2,str3]
和columns=[a,b]
的数据帧。为了选择是使用x列上的值还是y列上的值来填充预期数据帧的行,我使用整数N
可以将N视为限制,说明上面的每一行使用x值,下面的每一行使用y值。你知道吗
If N=1, I use x values for str 1, y values for str 2 and str 3
。你知道吗
If N=2, I use x values for str 1 and str 2 , y values for str 3.
If N=3, I use x values for str 1, str 2 and str 3.
当i=1时:
a b
str1 1.0 2.0 (x values)
str2 -2.0 -1.5 (y values)
str3 -1.0 -0.5 (y values)
我知道我可以得到两个数据帧,在x和y上展开,然后连接我想保留的行,但是我想知道是否有更快的方法。你知道吗
为了更好地以Pythonic的方式解决这个问题,您可以首先将您的规则(使用x或y值)翻译成字典(可能有字典理解):
然后我们可以循环N=1,。。。并通过列表/字典理解构建数据帧:
使用此数据帧字典:
定义
例如
N = 1
下面是使用有序字典中的dictcomp的代码(有点pythonic):
N_unstack(d,1)
的输出,其中d
是数据帧字典:下面是我将如何做到这一点(使用
pd.concat
)。有点冗长:编辑:使代码更像python
相关问题 更多 >
编程相关推荐