转置后如何转置和合并相同的列名?

时间:2019-05-15 12:52:44

标签: python python-3.x pandas

我有一个数据框,它的索引中有列名,而其旁边的列中有值,像这样:

      column
col1    a
col2    b
col3    c
col1    d
col2    e
col3    f

如何像这样将索引翻转并合并到列中?

col1     col2    col3
a         b        c 
d         e        f 

我尝试过:

new_df = pd.DataFrame(df).transpose()

new_df看起来像这样:

col1    col2     col3     col1   col2  col3
a        b         c        d     e      f

3 个答案:

答案 0 :(得分:4)

DataFrame.set_indexGroupBy.cumcount的计数器和append=True的参数MultiIndex一起使用,然后由Series.unstack的第一级重塑:

df = df.set_index(df.groupby(level=0).cumcount(), append=True)['column'].unstack(0)
print (df)
    col1 col2 col3
0      a    b    c
1      d    e    f

答案 1 :(得分:2)

如果它们是对称的,例如,只能使用reshape

pd.DataFrame(df.values.reshape([-1,3]), columns=df.index[:3])


    col1    col2    col3
0   a       b       c
1   d       e       f

答案 2 :(得分:1)

您可以先填充字典

d = {}
for k, v in df.column.items():
    d.setdefault(k, []).append(v)

pd.DataFrame(d)

  col1 col2 col3
0    a    b    c
1    d    e    f