python - 在 Python Pandas 中使用多个 'Value' 列拆分 DataFrame

标签 python pandas stack pivot-table

假设我有一个如下所示的 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

enter image description here

关于python - 在 Python Pandas 中使用多个 'Value' 列拆分 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731411/

相关文章:

C++ 奇怪的构造函数行为

java - java中堆栈值与字符串的比较

python - 多元线性回归中没有找到斜率和截距,nan值来了

python - 将 pandas dataframe 列从十六进制字符串转换为 int

python - 打开 pdf 并使用 python pandas 阅读表格

python - scikit-learn 转换器根据用户提供的切点对数据进行分类

c - 遍历堆栈

python - 经过训练的机器学习模型太大

python - AxesSubplot 对象的 xticks 等效函数

python - 查找所有与确切名称匹配的文件,带和不带扩展名