假设我有一个如下所示的 DataFrame:
keys sample verify
0 foo a 1
1 bar b 2
2 monty c 3
3 foo d 4
4 bar e 5
5 monty f 6
我想要这种形式:
foo_1 bar_1 monty_1 foo_2 bar_2 monty_2
0 a b c 1 2 3
1 d e f 4 5 6
最好的拆垛方式是什么?我已经尝试了 pandas.pivot_table() 和 pandas.unstack() 函数,但是数据透视表不能使用字母值,并且 unstack 函数不能按照我认为的方式工作(即堆栈的倒数)。我假设您可以逐列取消堆叠并在最后加入数据帧,我主要遇到的问题是取消堆叠功能及其作用。关于执行此操作的最佳方法有什么想法吗?
最佳答案
df2 = df.set_index('keys').T.reset_index(drop=True) \
.T.groupby(level=0).apply(lambda df: df.reset_index(drop=True)) \
.stack().unstack(1).T
df2.columns = df2.columns.set_levels((df2.columns.levels[1] + 1).astype(str), level=1)
df2.columns = df2.columns.to_series().str.join('_')
df2
关于python - 在 Python Pandas 中使用多个 'Value' 列拆分 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731411/